Пока все только привыкли (или нет) к f-строкам, в Python 3.14 (который выйдет еще не скоро) готовят революцию — Template Strings (t-строки).
Но зачем ждать?
Пакет tstrings позволяет использовать этот синтаксис на версиях Python < 3.14 уже сейчас.
В отличие от f-строк, которые сразу превращаются в готовую строку, t-строки возвращают объект шаблона. Это позволяет «лениво» обрабатывать данные, защищаться от SQL-инъекций или генерировать HTML без риска XSS.
Как это выглядит сейчас (бэкпорт)
Вместо нативного синтаксиса
t"..." мы используем функцию t():
from tstrings import t
name = "World"
tpl = t("Hello, {name}!")
print(tpl.strings) # ("Hello, ", "!") — статические части
print(tpl.interpolations) # (Interpolation(value="World", ...)) — данные
Что умеет tstrings-backport:
— String interpolation: Полная поддержка выражений внутри
{}.— Debug-режим: Старый добрый
{var=}, как в f-строках.— Спецификаторы: Поддержка форматов вроде
:.2f и конвертаций !r, !s.— Многострочность: Можно писать сложные выражения внутри шаблона.
⚠️ Ограничения
Поскольку это бэкпорт, мы не можем добавить новый литерал в синтаксис языка (нельзя написать просто
t"..."`). Приходится оборачивать в функцию `t("..."). Также ошибки проверяются в рантайме, а не при компиляции.🔗 Попробовать:
pip install tstrings-backportКак думаете, вытеснят ли t-строки привычные f-строки в будущем, или это инструмент только для узких задач типа SQL и HTML?
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст