Python Glossary English

Python 3.12+astпонятие

ast.type_param

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

Абстрактный базовый класс параметров типа PEP 695: TypeVar, ParamSpec, TypeVarTuple. Поле type_params у def, class и type. Появился в 3.12.

Синтаксис

isinstance(p, ast.type_param)

Список type_params есть у FunctionDef, ClassDef и TypeAlias с 3.12; в старом стиле (T = TypeVar('T') и Generic[T]) он пуст — там обычные Assign и Call. Вид параметра определяется синтаксисом: T — TypeVar, *Ts — TypeVarTuple, **P — ParamSpec; граница T: int лежит в TypeVar.bound.

Примеры

import ast
f = ast.parse('def f[T: int, *Ts, **P](x): pass').body[0]
print([type(p).__name__ for p in f.type_params])  # → ['TypeVar', 'TypeVarTuple', 'ParamSpec']
print(f.type_params[0].name, ast.unparse(f.type_params[0].bound))  # → T int

См. также

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