Python-Subklassenzugriff auf die Klassenvariable von Parent

War ich überrascht zu erfahren, dass eine Klasse, variable der Unterklasse keinen Zugriff auf eine Klassen-variable der Eltern, ohne speziell die Angabe der Klasse name der Eltern:

>>> 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

Warum ist es, dass in der Definition B. y habe ich zu verweisen auf A. x und nicht nur x? Dies ist entgegen meiner intuition von Instanz-Variablen, und da kann ich beziehen sich auf B. x nach B definiert ist.

InformationsquelleAutor der Frage Jeff O'Neill | 2010-09-06

Schreibe einen Kommentar