Чего я хочу добиться - это зарегистрировать один тип как подтип всех других типов. По какой-то другой причине я не могу использовать метакласс, поэтому __init_subclass__
кажется разумным выбором.
У меня есть такой код
from abc import ABC
class AnyData(ABC):
pass
class BaseData(ABC):
def __init_subclass__(cls, **kwargs):
super().__init_subclass__(**kwargs)
cls.register(AnyData)
class DataA(BaseData):
pass
Однако issubclass(AnyData, DataA)
возвращает False
, пока DataA
находится в подклассах, как
class DataB(DataA):
pass
Теперь issubclass(AnyData, DataA)
возвращает True
и issubclass(AnyData, DataB)
возвращает False
Пожалуйста, помогите выявить причину, по которой он ведет себя так