Python 3.12+astпонятие
ast.TypeAlias
инструкции
Узел инструкции type X = … (Python 3.12): name — Name со Store, type_params — параметры типа, value — правая часть.
Синтаксис
ast.TypeAlias(name, type_params, value)
type — мягкое ключевое слово: type = 5 по-прежнему обычный Assign, а TypeAlias появляется только у конструкции type Имя = …. В отличие от Assign значение вычисляется лениво при обращении к __value__, поэтому в value допустимы ещё не объявленные имена. Обобщённый алиас type Pair[T] = … кладёт T в type_params как TypeVar, где имя — строка, а не Name.
Примеры
import ast
a = ast.parse('type Pair[T] = tuple[T, T]').body[0]
print(type(a).__name__, a.name.id, type(a.name.ctx).__name__) # → TypeAlias Pair Store
print(type(a.type_params[0]).__name__, a.type_params[0].name) # → TypeVar T
print(type(ast.parse('type = 5').body[0]).__name__) # → Assign
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности