代码如下所示:
class A(object):
x = 0
y = 0
z = []
def __init__(self):
super(A, self).__init__()
if not self.y:
self.y = self.x
if not self.z:
self.z.append(self.x)
class B(A):
x = 1
class C(A):
x = 2
print C().y, C().z
print B().y, B().z
输出是
2 [2]
1 [2]
为什么被z
覆盖而不被覆盖y
?是不是因为它不是不可变类型?我查看了python的文档并没有找到解释。