В Python 3.14 появились t-строки. Да, мало нам было f-строк. Теперь еще и строки-шаблоны. Для того, чтобы понять зачем они вообще появились стоит вспомнить основной недостаток наших любимых f-строк. По сути всё исходит из невозможности перехватить и дополнительно обработать переданное значение. Всё потому что сразу собирается итоговая строка. А вот t-строка возвращает нам сырой шаблон и мы сами решаем, как его рендерить.

Вот небольшой пример того, как литерал t преобразует строку в объект Template, тем самым давая нам доступ к объекту шаблона:

`from string.templatelib import Template

name = "World" template = t"Hello {name}" isinstance(template, Template) # 👉 True print(template.values) # 👉 ("World",)

Рендеринг t-строк выглядит страшновато: `from string.templatelib import Template, Interpolation

def lower_upper(template: Template) -> str: """Render static parts lowercased and interpolations uppercased.""" parts: list[str] = [] for item in template: if isinstance(item, Interpolation): parts.append(str(item.value).upper()) else: parts.append(item.lower()) return "".join(parts)

name = "world" assert lower_upper(t"HELLO {name}") == "hello WORLD"

В голове ноль идей, где бы я мог это применить. Но и особого вреда они тоже не принесут. Полный текст PEP 750: https://peps.python.org/pep-0750/

#python #python3_14``
repost

24

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь