廖大python实战项目第六天

今天的比较简单,我就直接把源码上自己不容易搞懂的写一下吧。

merge()方法

def merge(defaults, override):
    r = {}
    for k, v in defaults.items():
        if k in override:
            if isinstance(v, dict):
                r[k] = merge(v, override[k]) # 递归调用
            else:
                r[k] = override[k]
        else:
            r[k] = v
    return r

这个方法使用了递归调用

Dict()类和toDict()方法

这个原本也没怎么看懂,但是一翻评论区还是找到了答案。
configs是一个dict对象,使用它的时候不是很方便。比如,configs[db][host]是读取配置,但是转化为Dict类之后我们就可以这样读取了:configs.db.host

原文地址:https://www.cnblogs.com/ChanWunsam/p/10018266.html