Python Glossary English

Python 3.12+astпонятие

ast.TypeVarTuple

параметры типов

Узел параметра типа *Ts в квадратных скобках (Python 3.12): name — строка, с 3.13 ещё default_value.

Синтаксис

ast.TypeVarTuple(name, default_value=None)

Как и у ParamSpec, звёздочка в name не входит: *Ts даёт name='Ts', и отличить его от TypeVar можно только по классу узла. Поля bound нет. Использование внутри аннотаций *Ts разбирается уже в Starred, а не в TypeVarTuple — объявление и применение выглядят в дереве по-разному.

Примеры

import ast
f = ast.parse('def f[*Ts](*args: *Ts): ...').body[0]
tp = f.type_params[0]
print(type(tp).__name__, tp.name)  # → TypeVarTuple Ts
print(type(f.args.vararg.annotation).__name__)  # → Starred

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности