Кисель в АйТи | AI, Python, технологии
3.38K subscribers
156 photos
5 videos
50 links
Я – Александр, и это мой авторский канал, на котором я пишу про AI, разработку и работу в айти.
Download Telegram
В 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
8🤔3😁1
Еще кое что про Python 3.14. В нём же появился PEP 758. Теперь можно перечислять группу эксепшнов без скобок. Проще показать:

Раньше только так:
try:
...
except (ExceptionA, ExceptionB, ExceptionC):
...


Теперь можно и так:
try:
...
except ExceptionA, ExceptionB, ExceptionC:
...

Полный текст PEP 758: https://peps.python.org/pep-0758/

#python #python3_14
4