代码如下:当我实例化一个Python子类,它将覆盖基类的属性
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的文档,并没有找到解释。
感谢有道理 – 2013-03-18 04:37:18