class MyDict(dict):
def __getattr__(self, item):
value = self.get(item)
if type(value) == dict:
value = MyDict(value)
if isinstance(value,list) or isinstance(value,tuple):
value = list(value)
for index,v in enumerate(value):
if isinstance(v,dict):
value[index] = MyDict(v)
return value
#是这个对象在没有某个属性的话,会调用它
if __name__ == '__main__':
#魔法方法
d1 = {"name":"wkf","addr":"北京","info":{"city":"深圳","cars":{"name":"bmw"}},
"phones":({"name":"huawei","price":50000},{"name":"xiaomi","price":11})
}
d = MyDict(d1)
print(d.name)