Python 3.14+astпонятие
ast.TemplateStr
литералы
Узел t-строки t'…' (Python 3.14): values — чередование Constant с текстом и Interpolation с подстановками.
Синтаксис
ast.TemplateStr(values)
t-строка выглядит как f-строка, но разбирается в TemplateStr, а не в JoinedStr, и в values у неё не FormattedValue, а Interpolation — с дополнительным полем str, где сохранён исходный текст выражения. Анализатор, который ищет только JoinedStr, t-строки пропустит. На версиях до 3.14 префикс t — синтаксическая ошибка, и ast.parse такой код не разберёт.
Примеры
import ast
t = ast.parse("t'Hi {name!r}'", mode='eval').body
print(type(t).__name__, [type(v).__name__ for v in t.values]) # → TemplateStr ['Constant', 'Interpolation']
print(t.values[1].str, chr(t.values[1].conversion)) # → name r
import ast
print(type(ast.parse("f'Hi {name}'", mode='eval').body).__name__) # → JoinedStr
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности