В Python 3.14 появились
Вот небольшой пример того, как литерал t преобразует строку в объект Template, тем самым давая нам доступ к объекту шаблона:
Рендеринг t-строк выглядит страшновато:
В голове ноль идей, где бы я мог это применить. Но и особого вреда они тоже не принесут.
Полный текст PEP 750: https://peps.python.org/pep-0750/
#python #python3_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. Теперь можно перечислять группу эксепшнов без скобок. Проще показать:
Раньше только так:
Теперь можно и так:
Полный текст PEP 758: https://peps.python.org/pep-0758/
#python #python3_14
Раньше только так:
try:
...
except (ExceptionA, ExceptionB, ExceptionC):
...
Теперь можно и так:
try:
...
except ExceptionA, ExceptionB, ExceptionC:
...
Полный текст PEP 758: https://peps.python.org/pep-0758/
#python #python3_14
❤4