专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
51好读  ›  专栏  ›  Python开发者

Python 3.14 新特性盘点,更新了些什么?

Python开发者  · 公众号  · Python  · 2025-05-29 08:56

正文

请到「今天看啥」查看全文


参数。

3. 无侵入调试接口 (PEP 768)

Python 3.14 新增的安全外部调试接口是个很给力的新功能,大大改善了 Python 程序的调试体验。以后不用预先在代码中插入任何调试语句,也能连上已经运行中的 Python 进程。

使用起来很简单:

python -m pdb -p 1234  # 直接连接到PID为1234的Python进程

实现这个功能的技术原理很巧妙:

  1. CPython 把关键内部结构的偏移量保存在 _Py_DebugOffsets 中,调试工具可以直接访问
  2. PyThreadState 中新加了外部调试支持结构,可以注入调试脚本
  3. 通过 sys.remote_exec() 功能可以检查和控制运行中的进程

这个特性不仅改善了开发者的调试体验,还为专业调试工具(如 pyspy、py-spy 等)提供了标准接口。这些工具以前必须为每个 Python 版本单独维护内存结构偏移量,现在不用这么麻烦了。生产环境下排查问题的难度也大大降低!

4. 模板字符串 (PEP 750)

Python 3.14 新增了一种特别的字符串写法——模板字符串(t-string)。就像常用的 f-string 前面加 f 一样,这种新字符串前面加 t

它主要解决了 Web 开发中的安全需求。在用 Django、Flask 这类框架开发网站时,如何安全地处理 HTML 内容和 SQL 语句一直是个老大难问题。这个新的 t-string 语法就是为了解决这个问题,它兼顾了代码的简洁性和内容的安全性。

简单的例子:

from string.templatelib import Template

name = "World"
template = t"Hello {name}"  # 返回一个 Template 对象,而不是字符串

t-string 与 f-string 最大的区别在于:f-string 会直接计算并返回字符串,而 t-string 生成的是 Template 类型的对象。有了这个对象,我们就能对模板内容做各种安全处理,比如 HTML 转义和 SQL 注入防护:

from string.templatelib import Template, html

# 有恶意代码
evil = ""

# 用模板处理,防止 XSS 攻击
template = t"

{evil}

"


# 使用 html() 函数转义危险字符
html_safe = html(template) 
assert html_safe == "

"

这个新功能会让 Web 开发、日志记录、数据库操作等场景更加安全和方便。

其它重要更新







请到「今天看啥」查看全文