2026 年 10 月 9 日,Python 官方发布 3.15.0。按官方“有什么新变化”文档,该版本在默认编码、导入机制、内置类型与运行时性能上都有值得关注的更新,其中多项以 PEP 形式确定。本文从编程语言与运行时视角解读。

默认编码改为 UTF-8

PEP 686 让 Python 默认使用 UTF-8 作为文本编码。对长期受平台默认编码差异困扰的项目,这一变化减少了跨平台读写文本时因编码不一致产生的隐性缺陷;同时也意味着依赖旧默认编码的代码需要按迁移指引核对。

启动速度:显式惰性导入

PEP 810 引入显式惰性导入(explicit lazy imports),目标是在保持语义清晰的前提下加快启动时间。对命令行工具、无服务器函数等对冷启动敏感的场景,惰性导入让“何时真正加载模块”更可控。该版本还包含 PEP 829 的包启动配置文件,用于集中声明包级启动行为。

新的内置类型与语法

PEP 661 新增 sentinel 内置类型,为“唯一哨兵值”提供了标准做法;PEP 814 新增 frozendict 内置类型,为不可变字典提供语言级支持;PEP 798 允许在推导式内进行解包。这些改动都指向同一方向:把过去需要自定义实现或依赖第三方库的常见模式,收敛到语言与标准库层面。

JIT 与性能分析

官方说明,实验性 JIT 编译器在该版本得到显著升级,在部分平台上带来可观的几何平均提速,延续了 CPython 在专用化解释器方向上的性能投入。PEP 799 则新增一个专用于组织性能分析工具的 profiling 包,并引入名为 Tachyon 的高频统计采样性能分析器。对性能敏感的团队,这意味着可以不依赖第三方工具,先用标准库完成一轮采样与定位。

兼容性与迁移

作为一个常规版本,3.15 的多数改动向后兼容,但默认编码与导入行为的变化可能影响既有项目。建议团队在升级前运行测试套件,重点核对文本 I/O 的编码假设、依赖导入时序的启动逻辑,以及与新内置类型同名的旧代码标识符。

小结

Python 官方于 2026 年 10 月 9 日发布 3.15.0,以 PEP 686 默认 UTF-8、PEP 810 惰性导入、PEP 661 sentinel、PEP 814 frozendict、PEP 798 推导式解包与 JIT 升级为看点,是编程语言与运行时领域一次兼顾启动性能与语言表达力的版本更新。

觉得有帮助?

联系我们,获取更多技术解决方案

Free Consultation