我已经在 Stack Exchange 上阅读了很多答案,比如Python - 为什么在课堂上使用“self”? 阅读这些答案后,我了解到实例变量对于类的每个实例都是唯一的,而类变量在所有实例之间共享。
在玩耍时,我发现这段代码给出了输出[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
为什么A
我运行时类变量没有更新x.add()
?我在编程方面不是很有经验,所以请原谅。