今天,带大家学习下 最新Python 3.14 带来的全新特性 t-strings。
你没有看错,它是t-strings不是f-strings!!
t-strings 是什么?
t-strings 是 Python 3.14 引入的一种新型字符串字面量,用 t 前缀标记,专门为字符串模板设计。
你可以把它看作 f-strings 的“安全版”兄弟。
t-strings的核心目标是提供一种结构化、可靠的方式来嵌入变量。
同时避免安全隐患,比如 SQL 注入或 XSS 攻击。
举个栗子
name = "麦叔"
greeting = t"你好,{name}!"
print(greeting) # 输出:你好,麦叔!
这样看起来,t-strings 和 f-strings 没啥区别啊?
事实上,f-strings 允许嵌入任意 Python 表达式(比如 f"结果是 {1+1}"),灵活但风险高;
而 t-strings 更严格,只支持简单的变量替换或受限的表达式,专为安全场景打造。
为什么需要 t-strings?
在web开发中,我们会需要生成动态内容,比如 HTML 页面、SQL 查询或配置文件。
使用 f-strings 时,如果不小心处理用户输入,可能导致严重的安全问题。
例如:
user_input = "<script>alert('hacked')</script>"
html = f"<div>{user_input}</div>"
print(html) # 输出:<div><script>alert('hacked')</script></div 危险!可能引发 XSS 攻击
t-strings 针对这类问题提供了解决方案。
不仅支持变量替换,还能与上下文处理器配合,自动对嵌入内容进行转义或验证,确保输出安全。比如:
from template_lib import render_html # 假设的模板库
user = "<script>alert('hacked')</script>"
safe_html = render_html(t"<div>{user}</div>")
print(safe_html) # 输出:<div><script>alert('hacked')</script></div>
通过内置的转义机制,t-strings 让开发者无需手动清理输入,省心又安全!
t-strings vs. f-strings:怎么选?
f-strings
如果你需要灵活的表达式计算,比如数学运算或复杂逻辑,f-strings 是首选。
例如:f"总价:{price * quantity}"。
t-strings
如果你在处理动态内容,尤其是涉及用户输入或外部数据的场景(HTML、SQL、配置文件),t-strings 会更安全、更专业。
原文链接:https://www.zsiss.com/9820.html,转载请注明出处。

评论0