[Python] python subclass access to class variable of parent

Discussão em 'Python' iniciado por Stack, Maio 16, 2025.

  1. Stack

    Stack Membro Participativo

    I was surprised to to learn that a class variable of a subclass can't access a class variable of the parent without specifically indicating the class name of the parent:

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


    Why is it that in defining B.y I have to refer to A.x and not just x? This is counter to my intuition from instance variables, and since I can refer to B.x after B is defined.

    Continue reading...

Compartilhe esta Página