首先我们回顾下字典的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'}
"""