Кисель в Айти | Python разработка
02.06
В 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``еще контент в этом сообществе
еще контент в этом соообществе
Кисель в Айти | Python разработка
02.06
войдите, чтобы увидеть
и подписаться на интересных профи