tg-me.com/python_job_interview/1102
Last Update:
🐍 Новая функция в Python 3.14: шаблонные строки — необходимость или излишняя сложность?
Python 3.14 готовит к выходу новую возможность — шаблонные строки (template strings, или t-строки), предложенные в PEP 750. Несмотря на интересный замысел, эта функция уже вызвала горячие споры в сообществе разработчиков. Давайте разберёмся, что это и зачем нужно.
Что такое t-строки?
T-строки — это новый способ форматирования строк, внешне похожий на f-строки. Принцип прост: добавляем префикс t
перед строкой, например:
t"Привет, {name}!"
Но ключевое отличие: вместо немедленного преобразования переменных в строку, как это делает f-строка, t-строка создаёт объект
Template
, который можно обработать позже. Это позволяет, например, безопасно подставлять пользовательские данные, снижая риск атак (XSS, SQL-инъекции и др.).Пример использования:
from string.templatelib import Template
user_input = "<script>alert('XSS')</script>"
template = t"<p>{user_input}</p>"
# Предположим, функция html() экранирует опасные символы
safe_output = html(template)
Зачем это нужно?
Идея проста: обеспечить безопасность по умолчанию при работе с внешними данными. Сегодня f-строки невероятно удобны, но могут стать причиной уязвимостей, если не учитывать контекст.
Пример:
# Опасный подход с f-строкой
query = f"SELECT * FROM users WHERE name = '{user_input}'"
С t-строками можно заранее создать шаблон и безопасно вставить данные позже, минимизируя риски.
Почему мнения разделились?
Многие разработчики задаются вопросом: зачем ещё один способ форматирования строк, если уже есть:
- старые добрые `%`-форматирование,
- метод
.format()
,- f-строки,
- и сторонние шаблонизаторы вроде Jinja2.
Некоторые опасаются, что добавление нового синтаксиса лишь усложнит язык без серьёзной необходимости.
Сторонники t-строк, однако, видят их потенциал в упрощении безопасной работы с текстом прямо в стандартной библиотеке Python.
Заключение
T-строки — это попытка добавить в Python инструмент, который обеспечит безопасность шаблонов без привлечения сторонних библиотек. Будет ли это востребовано или останется малоиспользуемой функцией? Время покажет.
🔗 Полное описание: [PEP 750](https://peps.python.org/pep-0750/)
А как ты относишься к новым t-строкам? 💬
BY Python вопросы с собеседований
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/python_job_interview/1102