为什么对象b
与a
具有相同的变量而不是唯一的变量?
class FOO:
def __init__(self):
FOO.x = [3, 1]
self.y = [9, 4]
def g(self):
FOO.x[1] = FOO.x[1] + 7
self.y *= 2
return FOO.x + self.y
a, b = FOO(), FOO()
print(a.g())
print(a.g())
print(b.g())
为什么我得到这个输出:
[3、8、9、4、9、4]
[3,15,9,4,4,9,9,4,9,4]
[3、22、9、4、9、4]
不是这个吗?
[3、8、9、4、9、4]
[3,15,9,4,4,9,9,4,9,4]
[3、8、9、4、9、4]
每个对象不是唯一的吗?
答案 0 :(得分:0)
FOO.x
变量属于FOO类,而不是每个实例。因此,在将7
添加到FOO[1]
时,您正在更改所有对象实例的值。