我在 Python 中遇到过几次这种行为,这有点令人费解。
class MyClass:
def __init__(self, initial_data={}):
self.data = initial_data
instance_a = MyClass()
instance_a.data['key1'] = 'val1'
print("instance_a.data:", instance_a.data)
instance_b = MyClass()
print("instance_b.data:", instance_b.data)
输出:
instance_a.data: {'key1': 'val1'}
instance_b.data: {'key1': 'val1'}
我希望data充当一个实例变量,但在这种情况下它看起来像一个类变量。
有谁知道为什么会发生这种情况以及避免它的最佳做法是什么?
Cats萌萌
UYOU
相关分类