Python 3.15.0(正式版)来了!

Python 3.15.0(正式版)来了!

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

Python 3.15.0 正式发布,包含 1012 位贡献者的 5643 次提交。主要新特性:内置 sentinel 与 frozendict 类型、默认 UTF-8 编码、推导式解包、显式惰性导入、包启动配置文件;实验性 JIT 性能提升 7% 至 12%;新增 Tachyon 采样分析器、TypedDict 额外项、TypeForm 注解、自由线程稳定 ABI。Windows 官方版改用尾调用解释器,macOS 默认支持自由线程。

🔎

延伸解读

性能提升的实测数据

文章给出了实验性 JIT 编译器的具体性能数据:在 x86-64 Linux 上,相比标准解释器有 7-8% 的几何平均性能提升;在 AArch64 macOS 上,相比尾调用解释器有 11-12% 的加速。这些数据来自官方发布说明,但需注意 JIT 仍处于实验阶段,实际收益可能因工作负载而异。

平台构建策略的调整

Python 3.15 对官方二进制包的构建方式做了两项重要调整:Windows 64 位官方版改用尾调用解释器,macOS 官方版则默认安装自由线程支持。这意味着不同平台用户开箱即用的解释器行为可能不同,尤其是 macOS 用户将直接获得自由线程特性,而 Windows 用户则受益于尾调用带来的性能优化。

类型系统的持续增强

本次更新在类型提示方面引入了多项新特性:PEP 728 允许 TypedDict 定义额外的类型化项,PEP 747 支持用 TypeForm 注解类型形式,PEP 800 则引入了类型系统中的不相交基类。这些改进让静态类型检查能覆盖更复杂的场景,但需要类型检查器同步支持才能发挥作用。

上手体验新特性的趣味方式

为了帮助开发者熟悉 3.15 的新功能,Barry Warsaw 制作了一款名为“whatsnewt”的 TUI 文字冒险游戏。玩家在解释器内部探索,通过完成 18 个基于真实 3.15 特性的谜题来抵达发布之门,部分谜题还需借助 pyrefly 类型检查器验证。可通过 uvx --python 3.15 whatsnewt 直接运行,在互动中学习新版本变化。

❓

Q&A

Python 3.15.0 正式版有哪些主要新特性?

主要新特性包括:内置 sentinel 类型、frozendict 类型、默认 UTF-8 编码、推导式解包、显式惰性导入、包启动配置文件;实验性 JIT 性能提升 7-12%;新增 Tachyon 采样分析器、TypedDict 额外项、TypeForm 注解、自由线程稳定 ABI;Windows 官方版改用尾调用解释器,macOS 默认支持自由线程。

Python 3.15 的 JIT 编译器性能提升了多少?

实验性 JIT 编译器在 x86-64 Linux 上相比标准解释器有 7-8% 的几何平均性能提升,在 AArch64 macOS 上相比尾调用解释器有 11-12% 的加速。

Python 3.15 在 Windows 和 macOS 平台上有哪些重要变化?

官方 Windows 64 位二进制文件现在使用尾调用解释器;官方 macOS 二进制文件现在默认安装自由线程支持。

Python 3.15 新增了哪些类型相关的特性?

新增类型特性包括:PEP 728 带类型额外项的 TypedDict、PEP 747 用 TypeForm 注解类型形式、PEP 800 类型系统中的不相交基类。

Python 3.15 的 Tachyon 是什么?

Tachyon 是 PEP 799 引入的高频统计采样分析器,属于专门的性能分析工具包的一部分,用于组织 Python 性能分析工具。

如何体验 Python 3.15 的新特性?

可以运行 TUI 文字冒险游戏 whatsnewt,通过命令 `uvx --python 3.15 whatsnewt` 启动。游戏包含 18 个谜题,每个谜题都要求实际使用 Python 3.15 的新特性编写和运行代码,部分谜题需要类型检查器,答案由 pyrefly 验证。

🏷️

标签

➡️

继续阅读