Python 包含字典的类属性

Python 包含字典的类属性,python,python-3.x,dictionary,properties,Python,Python 3.x,Dictionary,Properties,请您解释一下,为什么v2不包含{“A”:1,“B”:2,“C”:3}而v3包含 class MyClass: def foo(self): v1 = self.d.get('A') print(v1) # 1 v2 = self.d.update({"C": 3}) print(v2) # None v3 = self.d v3.update({"C":

请您解释一下,为什么
v2
不包含
{“A”:1,“B”:2,“C”:3}
v3
包含

class MyClass:

    def foo(self):

        v1 = self.d.get('A')
        print(v1)
        # 1

        v2 = self.d.update({"C": 3})
        print(v2)
        # None

        v3 = self.d
        v3.update({"C": 3})
        print(v3)
        # {'A': 1, 'B': 2, 'C': 3}

    @property
    def d(self):
        return {"A": 1, "B": 2}

mc = MyClass()
mc.foo()

self.d.update({“C”:3})
是一个无效函数。它返回一个
None
值。在您的情况下,
v2
被重新分配给
None

dict.update
是一个就地操作,它不返回任何内容(它返回
None
)。如果在创建
v3
之前只打印(self.d),您将看到
self.d[“C”]
已经是
3
。经典副本:。@jornsharpe谢谢你的回复!我完全忘了。