import typing # Новое в Python 3.12. typing.TypeAliasType(name, value, *, type_params=())
Класс typing.TypeAliasType()
модуля typing
представляет собой тип псевдонимов типов, созданных с помощью оператора type
.
>>> type Alias = int >>> type(Alias) # <class 'typing.TypeAliasType'>
typing.TypeAliasType()
имеет следующие атрибутыTypeAliasType.__name__
:TypeAliasType.__name__
представляет собой имя псевдонима типа:
>>> type Alias = int >>> Alias.__name__ # 'Alias'
TypeAliasType.__module__
:TypeAliasType.__module__
представляет собой имя модуля, в котором был определен псевдоним типа:
>>> type Alias = int >>> Alias.__module__ # '__main__'
TypeAliasType.__type_params__
:TypeAliasType.__type_params__
представляет собой параметры типа псевдонима типа или пустой кортеж, если псевдоним не является универсальным:
>>> type ListOrSet[T] = list[T] | set[T] >>> ListOrSet.__type_params__ # (T,) >>> type NotGeneric = int >>> NotGeneric.__type_params__ # ()
TypeAliasType.__value__
:TypeAliasType.__value__
представляет собой значение псевдонима типа. Вычисляется лениво, поэтому имена, используемые в определении псевдонима, не разрешаются до тех пор, пока не будет получен доступ к атрибуту __value__
:
>>> type Mutually = Recursive >>> type Recursive = Mutually >>> Mutually # Mutually >>> Recursive # Recursive >>> Mutually.__value__ # Recursive >>> Recursive.__value__ # Mutually