Message 307182 - Python tracker (original) (raw)
When superclass inherits from Generic, attributes set for a subclass are incorrectly propagated to its superclass.
Without Generic attribute access raises an exception:
class X:
def __init_subclass__(cls, **kwargs):
super().__init_subclass__(**kwargs)
cls.attr = 42
class Y(X):
pass
Y.attr # 42
X.attr # AttributeError
With Generic it does not:
import typing
T = typing.TypeVar('T')
class X(typing.Generic[T]):
def __init_subclass__(cls, **kwargs):
super().__init_subclass__(**kwargs)
cls.attr = 42
class Y(X):
pass
Y.attr # 42
X.attr # 42