class ObjectDict(object):
def __init__(self, d):
self.__d__ = d
def __setattr__(self, key, value):
if key == '__d__':
return super.__setattr__(self, key, value)
self.__d__.__setitem__(key, value)
def __getattr__(self, item):
if item == '__d__':
return super.__getattr__(self, item)
val = self.__d__.__getitem__(item)
if isinstance(val, dict):
return self.__class__(val)
elif isinstance(val, list):
return [self.__class__(d) for d in val]
else:
return val
if __name__ == '__main__':
data = {
'id': 1,
'name': '苹果',
'solder': [
{
'id': 1,
'name': 'a'
},
{
'id': 2,
'name': 'b'
}
]
}
od = ObjectDict(data)
print(od.solder[0].name)
od.solder[0].name = 'jack'
print(od.solder[0].name)
print(data)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)