更改可变属性会更改类的每个实例中的该属性

时间:2019-05-11 14:10:51

标签: python python-3.x

看下面的代码,我们看到2个相同类的实例。当我们更改可变属性时,实际上是将其更改为两个实例。我觉得很棘手。谁能解释为什么会这样?

class MyClass:
    name: str = None
    dic: Dict[str, str] = {}


instance_1 = MyClass()
instance_2 = MyClass()
instance_1.name = ':)'
instance_1.dic['key'] = 'value'
print(instance_2.name)  # as expected prints None for immutable type str
print(instance_2.dic['key'])  # as unexpected prints value, for mutable type dic

0 个答案:

没有答案