首先我们回顾下字典的update方法,以及查看对象属性__dict__的使用;然后再看对象.__dict__update的使用
一、字典的update方法
1.描述dict.update()
update() 函数把字典 dict2 的键/值对更新到 dict 里
2.语法
dict.update(dict2)
3.返回值
该方法没有任何返回值
4.栗子
tinydict = {'Name': 'Zara', 'Age': 7} tinydict2 = {'Sex': 'female' } tinydict.update(tinydict2) print ("Value : %s" % tinydict) # Value : {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}
二、.__dict__ 查看对象的属性
方法: obj.__dict__
class TestClass: """My class""" def __init__(self, num: int, total: int): """init""" self.num = num self.total = total if __name__ == '__main__': test = TestClass(num=3, total=10) print(test.__dict__) # {'num': 3, 'total': 10}
二、obj.__dict__.update()
由上面的分段知识点,可以知道update()是对前面的字典进行批量更新内容的
outer_dict = {"owner_name": "zhangsan"} class TestClass: """My class""" inner_dict = {"addr": "SH"} def __init__(self, num: int, total: int): """init""" self.num = num self.total = total if __name__ == '__main__': test = TestClass(num=3, total=10) print("print1:", test.__dict__) # {'num': 3, 'total': 10} test.__dict__.update(outer_dict) print("print2:", test.__dict__) test.__dict__.update(test.inner_dict) print("print3:", test.__dict__) """ result: print1: {'num': 3, 'total': 10} print2: {'num': 3, 'total': 10, 'owner_name': 'zhangsan'} print3: {'num': 3, 'total': 10, 'owner_name': 'zhangsan', 'addr': 'SH'} """