Python 3.14.0rc3 新特性说明(对比3.13版本)
以下是Python 3.14.0rc3 文档《What’s new in Python 3.14》的翻译内容,部分内容为概要:
原文地址 What’s new in Python 3.14 — Python 3.14.0rc3 documentation
Python 3.14 新特性说明(对比3.13版本)
编辑:Hugo van Kemenade
注意:预发布用户需知本文档当前为草案形式,随着Python 3.14接近正式发布将持续大幅更新,即使阅读过早期版本也建议后续复查。
摘要——版本亮点
Python 3.14将是该语言的最新稳定版本,包含语言特性、实现机制及标准库的混合变更。最显著的实现层改动包括:模板字符串(PEP 750)、延迟注解求值(PEP 649)以及采用尾调用机制的新型解释器。标准库新增了用于注解内省与封装的annotationlib模块(PEP 749)、支持Zstandard压缩的compression.zstd模块(PEP 784),并增加了REPL中的语法高亮功能,同时包含常规的弃用项移除及用户体验/正确性改进。
PEP相关变更
PEP 758:允许无括号的except/except*表达式
当不存在多个异常类型且未使用as子句时,except和except*表达式现允许省略括号。例如:
try: connect_to_server()
except TimeoutError, ConnectionRefusedError: print("网络问题") # 同样适用于except*
try: connect_to_server()
except * TimeoutError, ConnectionRefusedError: print("网络问题")
PEP 765:禁止在finally块中使用return/break/continue退出
明确禁止通过return、break或continue语句从finally块中退出(原行为虽可能引发问题但未被禁止)。
不兼容变更
-
引用计数优化:解释器在安全时避免部分引用计数的内部修改,可能导致sys.getrefcount()和Py_REFCNT()返回值与旧版本不同(详见下文)。
-
其他细节:参考各PEP文档(如PEP 758、PEP 649等)及下文具体章节。
新特性详解
PEP 779:官方支持自由线程(Free-threaded)Python
自由线程构建模式现正式受支持(但仍为可选),标志着该特性进入“第二阶段”。此模式允许Python解释器在多线程环境下无需全局解释器锁(GIL)即可运行,显著提升多核并行性能(尤其适用于CPU密集型任务)。当前限制包括:各解释器启动未优化、内存占用较高、对象共享选项有限(除memoryview外)、多数PyPI扩展模块尚不兼容等。未来版本将通过CPython改进及PyPI工具逐步解决。
PEP 734:标准库中的多解释器支持
CPython运行时长期支持单进程内运行多个Python解释器(通过C-API实现),但此前未提供标准库模块。3.14新增multiprocessing.InterpreterPoolExecutor,将“子解释器”(同一进程内的多个Python解释器)暴露给Python代码(独立于PEP 734提案)。多解释器模式提供类似多进程的隔离逻辑“进程”(默认无共享),但资源消耗更低、效率更高(因在同一进程内)。当前局限包括启动开销未优化、内存共享不足、跨解释器对象共享选项有限等,未来版本将逐步改善。
PEP 750:模板字符串(Template Strings)
模板字符串字面量(t-strings,以t前缀替代f前缀)是f-strings的泛化形式,其求值结果为新的string.templatelib.Template类型而非str。