【发布时间】:2020-02-16 01:32:42
【问题描述】:
我在 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 充当实例变量,但在这种情况下它看起来像一个类变量。
有谁确切地知道为什么会发生这种情况以及避免这种情况的最佳做法是什么?
【问题讨论】:
标签: python python-3.x