Как узнать, является ли данный класс подклассом любого typing.Generic
? Вызов issubclass
, кажется, не работает, как ожидалось:Is issubclass сломан для сравнения с typing.Generic в Python 3.5?
import typing
T = typing.TypeVar('T')
class A(typing.Generic[T]):
pass
class B:
pass
issubclass(A, typing.Generic)
>>> True
issubclass(B, typing.Generic)
>>> Traceback (most recent call last):
... <more traceback lines here>
File "<some_path>\env\lib\abc.py", line 225, in __subclasscheck__
for scls in cls.__subclasses__():
TypeError: descriptor '__subclasses__' of 'type' object needs an argument
Кроме того, я упускаю что-нибудь, и это ожидаемое поведение или это ошибка?
Итак, можно ли предположить, что если TypeError
поднят, то это НЕ подкласс typing.Generic
?
Я использую Python 3.5.2.
спасибо.
Может быть, это должно быть 'issubclass (B, typing.Generic [T]) ' –
Он работает, да, но только в этом случае, поскольку общий может иметь более одного параметра параметра. –