Python 3.15 是真的要来了。
8 月 4 日,官方放出 RC1(第一个候选发布版),特性全部冻结,按惯例没有意外的话,10 月正式版就会和大家见面。而社区现在是什么状态呢?B 站评论区高赞是:“居然都 3.15 了吗,我还在用 3.11”,底下跟一句:“别急,我司还在用 2.7 十几年前的项目”。哔哩哔哩
所以这篇不做"新特性一览"——这种内容最近满天飞。我把知乎、B 站、小红书和几份 Python 周刊的讨论翻了一遍,只想回答一个更实际的问题:这次升级值得你动手吗?哪些特性真有用,哪些只是热闹?你这种人该什么时候动?
先说结论:这是近几年少数"体验级"的版本,但至少一半的人现在不该升。
一、lazy import:真香,但有三个坑
3.15 新增了 `lazy` 关键字,写 `lazy import pandas`,这个模块就不会在导入时加载,而是等你第一次真正用到它才加载。
为什么这事值得兴奋?写过 CLI 工具的都懂那种痛——看个 `–help`,程序先黑屏三秒。B 站评论区有人吐槽得特别到位:“很烦很多没好好写的 CLI,只是看个 --help 却仿佛在加载 3A 游戏”。哔哩哔哩lazy import 就是冲着这个场景去的,Serverless 冷启动同理。还有个隐藏福利:很多循环引用其实是写类型标注逼出来的,以后 `if TYPE_CHECKING` 这种丑陋的 hack 可以少用很多。

但有三个必须知道的事:
第一,它不是默认行为。不是"升到 3.15 导入就自动变懒",要你自己显式写 `lazy`。评论区真有相当一部分人误会了。哔哩哔哩
第二,靠副作用吃饭的模块千万别 lazy。评论区有两个真实翻车预警:有人给公司基础库打 monkey patch,patch 依赖导入即执行,lazy 了就失效;有人的公司是 monorepo,启动时全量 import 的重要作用之一就是"提前暴露问题"——谁把库写坏了,启动就炸,总比线上炸强。全改 lazy,这层保险就没了。哔哩哔哩
第三,引用别拖得太晚。解释器退出清理阶段已经不能再 import,一个迟迟没被用到的模块要是在异常展开的节骨眼上才触发加载,也可能出事。
最后给句冷静话:lazy import 不是让 Python 变快,是把成本从启动挪到首次使用。启动省 1 秒、用到时多等 1 秒的事是存在的,值不值,看你的场景。哔哩哔哩
二、frozendict:等了 13 年的不可变字典
2012 年就作为 PEP 416 提过,当年被 Guido 拒了,这次以 PEP 814 落地 3.15。知乎
简单说就是内置的不可变 dict:只要所有值可哈希,它自己就可哈希——终于能拿它当 dict 的 key、丢进 set 了。做缓存键、冻结配置的人知道这有多痛:以前的 `MappingProxyType` 是只读视图但不可哈希,自己造轮子要么丢插入顺序,查找性能还要付出约 30% 的代价。知乎现在有了官方答案,而且 `json` 模块也配好了钩子,JSON 对象可以直接解析成 frozendict。知乎

三、UTF-8 成为默认:中文乱码的终结
PEP 686 让 UTF-8 模式在 3.15 变成默认,Windows 默认编码统一为 UTF-8。小红书上讲这事的一条笔记拿了 885 个赞、472 个收藏,热评就一句:“从此以后,'在我电脑上好好的,到你那就乱码’这句话,将彻底成为历史”。小红书跨平台读写文件调过 `encoding=` 的人,都懂这省了多少麻烦。
四、两件值得知道但别激动的事
JIT 这次真争气了:官方团队博客的数据,3.15 alpha 的 JIT 在 macOS AArch64 上比 tail-calling 解释器几何平均快约 11%–12%,x86_64 Linux 上比标准解释器快 5%–6%。知乎数字不大,剧情很大——3.13、3.14 阶段 JIT 几乎没拿出像样的提速,2025 年主要赞助方退出后项目一度濒危,是社区接管把它救回来的。所以它是"活下来了",不是"起飞了",别指望升级就有质的提速。

无 GIL 的 free-threading 在继续往稳定 ABI 推,但还没到普通用户该上的阶段,高并发服务可以盯着,日常脚本党不用管。
五、所以,你到底该不该升?
按人群给建议:
个人项目、学习、玩具代码:直接升。新语法早用早享受,成本几乎为零。
CLI 工具、脚本、Serverless:值得积极。lazy import 和 UTF-8 默认就是冲你的痛点来的,正式版发布后即可安排。
生产服务:RC 阶段别急。等正式版出来,先在测试环境升,重点回归两块:C 扩展库的兼容性、依赖导入副作用的代码。
依赖小众库、老框架的代码:等。生态适配永远慢解释器一拍,评论区有人还在吐槽当年 NumPy 1.26 升 2.0 的一地鸡毛,别当第一批小白鼠。哔哩哔哩

现在就能做的两件事:查一遍你依赖的库对 3.15 的支持状态;把 10 月正式版的日历标上,RC 都出了,正式版不会远。
你手上还停在哪个版本?3.15 来了你会第一时间升吗?评论区聊聊。