New submission from Ilya Kulakov <[email protected]>:
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
----------
messages: 307182
nosy: Ilya.Kulakov
priority: normal
severity: normal
status: open
title: typing.Generic breaks __init_subclass__
type: behavior
versions: Python 3.6
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32162>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com