如下定义一个类,成员变量是mutable的
class MyClass:
__value = []
def append(self,value):
__value.append(value)
def get(self):
return self.__value
然后实例化
instance_a = MyClass()
instance_b = MyClass()
instance_a.append(100)
print instance_b.get() #结果输出了 [100],说明成员变量在不同实例间被共享
现在我不想变量(list,dict等等类型的)被不同实例共享,应该怎么做?难道只能用基本数据类型作为成员变量吗?
你所声明的是
类变量
而非成员变量,也就是说你的value是绑定到类型的,而不是实例上。试试这个