Python Glossary English

Python 3.14+astпонятие

ast.Interpolation

литералы

Узел одного поля {…} в t-строке (шаблонной строке, PEP 750): выражение, его исходный текст, преобразование и формат.

Синтаксис

ast.Interpolation(value, str, conversion, format_spec=None)

Это аналог FormattedValue, но для t'…', и у него есть лишнее поле str — исходный текст выражения, ровно как он записан: для t'{a + b}' это 'a + b'. Обе ветки делят соседей: TemplateStr.values состоит из Interpolation и Constant, а format_spec — по-прежнему JoinedStr. Узла нет до 3.14, а код с t-строкой на 3.13 не разбирается вовсе — SyntaxError ещё до ast.

Примеры

# Python 3.14+
import ast
tpl = ast.parse('t"Hi {user.name!r} at {a + b:>4}"', mode='eval').body
print(type(tpl).__name__)  # → TemplateStr
parts = [v for v in tpl.values if isinstance(v, ast.Interpolation)]
print([p.str for p in parts])  # → ['user.name', 'a + b']
print(chr(parts[0].conversion), parts[1].conversion)  # → r -1

См. также

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