今天的比较简单,我就直接把源码上自己不容易搞懂的写一下吧。
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
。