TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4176 3.08K
t-строки: что это и чем отличаются от f-строк?

t-строки (template strings), предложенные в PEP 750, — новый механизм безопасной интерполяции строк. В отличие от f-собрата, t-строка не создает обычный string, а возвращает объекты шаблонов, которые можно безопасно обрабатывать, не боясь вредоносных SQL-инъекций.

t-строки автоматически экранируют вставляемые значения, предотвращая инъекции команд или SQL. Они возвращают специальные объекты, которые можно передавать в функции, поддерживающие шаблоны, обеспечивая дополнительную безопасность.

PEP 787 дал возможность использовать такое в модулях subprocess и shlex, включая новую функцию sh() для безопасной сборки командной строки.


from shlex import sh
from subprocess import run

user_input = "some file.txt"
run(sh(t"cat {user_input}"))


Хотя t-строки обеспечивают безопасность, они требуют поддержки со стороны функций и библиотек. Например, попытка передать t-строку в функцию, ожидающую обычную строку, вызовет ошибку. Кроме того, интеграция t-строк в subprocess отложена до Python 3.15 из-за сложностей с кроссплатформенной реализацией.

#основы
@zen_of_python
  • 👍 10
  • 🤔 9
  • ❤ 3
  • ✍ 1
  • 🔥 1
More from @zen_of_python
  1. Sep 28, 2026Как проверять инварианты Python-кода с Hypothesis Обычный тест фиксирует конкретный ввод и…
  2. Sep 27, 2026Как запускать собственный SQL через миграции Django У models.Index нашлось необычное приме…
  3. Sep 27, 2026Как разделить синхронный и асинхронный Python-клиенты При переписывании akismet автор отка…
  4. Sep 27, 2026Как заменить цепочку isinstance на singledispatch Когда обработка типов разрастается, цепо…
  5. Sep 26, 2026Как собирать динамические фильтры Django через Q-объекты Q() представляет условие для SQL-…
  6. Sep 26, 2026Почему str.splitlines() видит больше переносов, чем чтение файла У Python два разных понят…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →