Python怎么避免不同的实例之间共享变量?
如下定义一个类,成员变量是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等等类型的)被不同实例共享,应该怎么做?难道只能用基本数据类型作为成员变量吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你所声明的是
类变量
而非成员变量,也就是说你的value是绑定到类型的,而不是实例上。试试这个
题主可以看看这个:https://www.zhihu.com/question/25874136
关于静态变量、实例变量的讲解。
至于具体如何操作,上面两个答案已经很清楚的列出来了。