【发布时间】:2013-11-03 14:14:10
【问题描述】:
我已经在 Stack Exchange 上阅读了很多答案,例如 Python - why use "self" in a class? 阅读这些答案后,我了解到实例变量对于类的每个实例都是唯一的,而类变量在所有实例之间共享。
在玩的时候,我发现这段代码给出了输出[1]:
class A:
x = []
def add(self):
self.x.append(1)
x = A()
y = A()
x.add()
print "Y's x: ", y.x
但是,这段代码给出了10 作为输出,而我认为它应该是11:
class A:
x = 10
def add(self):
self.x += 1
x = A()
y = A()
x.add()
print "Y's x: ", y.x
为什么当我运行x.add() 时A 类变量没有更新?我对编程不是很有经验,所以请见谅。
【问题讨论】:
-
谢谢@mbatchkarov,我不知道我是怎么漏掉的 :)