Не используется в аннотациях, являются строительным блоком для создания универсальных типов.
from typing import Generic Generic[X, Y]
X
- аннотация аргумента,Y
- аннотация возвращаемого значения.Тип аннотации Generic()
модуля typing
представляет собой абстрактный базовый класс для универсальных типов.
Универсальный тип обычно объявляется путем наследования от экземпляра этого класса с одной или несколькими переменными типа.
Например, общий тип сопоставления может быть определен как:
class Mapping(Generic[KT, VT]): def __getitem__(self, key: KT) -> VT: ... # Etc.
Затем этот класс можно использовать следующим образом:
X = TypeVar('X') Y = TypeVar('Y') def lookup_name(mapping: Mapping[X, Y], key: X, default: Y) -> Y: try: return mapping[key] except KeyError: return default