【发布时间】:2011-04-08 14:14:44
【问题描述】:
我惊讶地发现,子类的类变量如果不明确指出父类的类名,就无法访问父类的类变量:
>>> class A(object):
... x = 0
...
>>> class B(A):
... y = x+1
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in B
NameError: name 'x' is not defined
>>> class B(A):
... y = A.x + 1
...
>>> B.x
0
>>> B.y
1
为什么在定义 B.y 时我必须引用 A.x 而不仅仅是 x?这与我对实例变量的直觉相反,因为我可以在定义 B 之后引用 B.x。
【问题讨论】:
标签: python subclass class-variables