Подкласс Generic завершается с ошибкой AttributeError: у объекта нет атрибута «__parameters__» — использование Generic, Python

Программы на Python
Ответить
Anonymous
 Подкласс Generic завершается с ошибкой AttributeError: у объекта нет атрибута «__parameters__» — использование Generic,

Сообщение Anonymous »

У меня есть следующая настройка
from typing import Generic, TypeVar
T = TypeVar("T")

class ThirdParty:
def __init_subclass__(cls):
... # does not call super()

class Mine(ThirdParty, Generic[T]):
...

class Sub(Mine[int]):
...

Однако это не удается при следующем
Traceback (most recent call last):
File "", line 1, in
File "/home/dsperber/master/repos/SYMPOL/rllib_port/core/stated_flax_model.py", line 27, in
class Sub(Mine[ModelType]):
File "/home/xxxx/miniconda3/envs/python3.10/lib/python3.10/typing.py", line 309, in inner
return cached(*args, **kwds)
File "/home/xxxx/miniconda3/envs/python3.10/lib/python3.10/typing.py", line 1342, in __class_getitem__
if any(isinstance(t, ParamSpec) for t in cls.__parameters__):

AttributeError: type object 'Mine' has no attribute '__parameters__'

Я понял, что это связано с тем, что ThirdParty имеет функцию __init_subclass__, но она не вызывает super().__init_subclass__, поэтому Generic.__init_subclass__ не вызывается.
Есть ли способ обойти это? Добавление __init_subclass__ в Mine не работает или также происходит сбой:
def __init_subclass__(cls):
Generic.__init_subclass__(cls)
# TypeError: Generic.__init_subclass__() takes 1 positional argument but 2 were given


Подробнее здесь: https://stackoverflow.com/questions/798 ... ute-parame
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»