У меня есть класс, который наследуется от typing.Generic
и передает один TypeVar
в качестве параметра.
Позже в коде я хотел бы:
- Статически (не во время выполнения) получить параметр
TypeVar
из класса - Псевдоним переменной другого типа
- Используйте этот псевдоним, чтобы ввести подсказку
return
функции
Есть ли в Python способ сделать это?
Единственное, что мне не хватает, это шаг 1, как получить параметр типа из переменной типа.
Мой вариант использования
from abc import ABC, abstractmethod
from typing import TypeVar, Generic
TFloat = TypeVar("TFloat", bound=float)
class BaseDataClass(Generic[TFloat], ABC):
@property
@abstractmethod
def data(self) -> TFloat:
"""Get data."""
class ChildDataClass(BaseDataClass[int]):
@property
def data(self) -> int:
return 1
Затем я импортирую BaseDataClass
и ChildDataClass
в другой модуль.
Есть ли в этом втором модуле способ статически получить параметр TFloat
из BaseDataClass
или параметр int
из ChildDataClass
и использовать его в mypy
?
К вашему сведению: я использую Python 3.8.2.