看下面的代码,我们看到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