Python 3.15
Python 编程语言的一个未来版本,其解释器行为变化可能影响代码性能热点分布。
时间轴 (近 90 天)
Python 3.15 引入了 sentinel 类型,用于把状态标记从 None 和裸 object() 中解放出来。
Python 3.15 正式发布,本次更新包含惰性导入、Sentinel 类型、推导式解包运算符和冻结字典等新特性。
Python 3.15 包含实验性的 JIT 编译器性能提升、错误信息优化、统计采样分析器,以及类型化字典的额外条目类型支持。
冻结字典(frozendict)是不可变字典,一旦创建不支持赋值操作,任何修改尝试都会抛出异常。
Python 3.15 引入 Sentinel 类型,允许开发者定义具有明确命名的哨兵值,如 MISSING = Sentinel("MISSING") 和 EMPTY = Sentinel("EMPTY")。
惰性导入不改变导入语义,只改变导入发生的时机;对导入副作用有依赖的代码或在类型检查、反射场景下提前访问模块属性的情况,可能出现行为差异。
Python 长期缺少官方内置、低开销且易于可视化的性能分析手段,开发者往往依赖 py-spy 等第三方工具,3.15 将采样分析能力纳入标准库降低了性能调优门槛。
推荐工作流:用 3.15 采样分析器收集数据,生成火焰图定位宏观瓶颈,再用源码热力图精确定位代码行。
开发者只需在 GitHub Actions 测试矩阵的 python-version 中加入 "3.15" 即可在 CI 中使用 Python 3.15。
Python 3.15 的采样分析器支持 attach 到已运行进程的模式,该模式需要目标进程的 PID 作为入口参数。
还有 24 条时间轴事件
全部知识事实 (20)
Hugo van Kemenade 同时担任 Python 3.14 和 3.15 两个版本的发布经理
60%待验证Python 3.15计划通过PEP 686将默认编码统一为UTF-8
60%待验证Python 3.15 包含实验性的 JIT 编译器性能提升、错误信息优化、统计采样分析器,以及类型化字典的额外条目类型支持。
50%待验证冻结字典(frozendict)是不可变字典,一旦创建不支持赋值操作,任何修改尝试都会抛出异常。
50%待验证Python 3.15 引入 Sentinel 类型,允许开发者定义具有明确命名的哨兵值,如 MISSING = Sentinel("MISSING") 和 EMPTY = Sentinel("EMPTY")。
50%待验证惰性导入不改变导入语义,只改变导入发生的时机;对导入副作用有依赖的代码或在类型检查、反射场景下提前访问模块属性的情况,可能出现行为差异。
50%待验证推荐工作流:用 3.15 采样分析器收集数据,生成火焰图定位宏观瓶颈,再用源码热力图精确定位代码行。
50%待验证Python 长期缺少官方内置、低开销且易于可视化的性能分析手段,开发者往往依赖 py-spy 等第三方工具,3.15 将采样分析能力纳入标准库降低了性能调优门槛。
50%待验证开发者只需在 GitHub Actions 测试矩阵的 python-version 中加入 "3.15" 即可在 CI 中使用 Python 3.15。
50%待验证Simon Willison 表示,datasette-ports 显示 PID 的用意是让用户更方便地给运行中的 Datasette 进程挂载 Python 3.15 引入的新性能分析器。
50%待验证Python 3.15 的采样分析器支持 attach 到已运行进程的模式,该模式需要目标进程的 PID 作为入口参数。
50%待验证Python 3.15 引入了一个基于采样的性能分析器,以固定频率抓取调用栈快照,对程序运行性能影响较小,适合分析长时间运行的服务。
50%待验证Python 3.15 包含来自 PEP 810 的显式懒加载(Explicit lazy imports)特性,允许使用 lazy import 语法延迟模块导入。
50%待验证Python 3.15 中,What's New 指南由 3.14 和 3.15 的发布经理 Hugo van Kemenade 策划。
50%待验证使用 uv 升级到 Python 3.15 的流程包括:uv self update、uv python install 3.15、uv python pin --global 3.15。
50%待验证进入 RC 阶段后,只有经过审查且属于明确 Bug 修复的代码变更才被允许合并进主线,不再加入新特性
50%待验证任何针对 Python 3.15.0 RC 版本编译的二进制 wheel 都将与未来所有的 Python 3.15.x 版本兼容
50%待验证Python 3.15 引入了 sentinel 类型,用于把状态标记从 None 和裸 object() 中解放出来。
50%待验证Python 3.15 正式发布,本次更新包含惰性导入、Sentinel 类型、推导式解包运算符和冻结字典等新特性。
50%待验证Python 3.15 标准库新增采样分析器 Tachyon(profiling.sampling),并将原有的跟踪分析器 cProfile 重命名为 profiling.tracing。
50%