知其然,知其所以然
新版本特性实测 2026-10-30

Python 3.15 lazy import 实测:导入 15 个标准库模块,启动从 100.3 ms 降到 19.4 ms,出错要等到第一次使用才报

实测 Python 3.15 lazy import:3.14 报 SyntaxError,3.15 里导入推迟到第一次使用;模块不存在时到使用处才报 ImportError 链;try、函数、类里不能写;-X lazy_imports=all 在 3.14 上被静默忽略;导入 15 个标准库模块的启动时间 3.15 普通 import 100.3 ms、lazy import 19.4 ms。

Python Python 3.15 lazy import PEP 810 sys.set_lazy_imports_filter -X lazy_imports 启动时间 新特性 真实验证 动画演示
新版本特性实测 2026-10-30

SyntaxError: iterable unpacking cannot be used in comprehension:Python 3.15 里 [*a for a in xs] 合法了,和嵌套推导式、chain、extend 的速度实测

实测 Python 3.15 推导式里的 * 和 ** 解包:3.14 报 SyntaxError: iterable unpacking cannot be used in comprehension;3.15 里 [*a for a in xs] 等四种都能写;重复键后者覆盖;生成器表达式仍然惰性;各种写错的报错文本;字节码只有 LIST_EXTEND;拍平列表三种形状的速度对比。

Python Python 3.15 推导式 解包 PEP 798 iterable unpacking cannot be used in comprehension 列表拍平 新特性 真实验证 动画演示
新版本特性实测 2026-10-30

Python 3.15 内置 frozendict 实测:不是 dict 的子类,能当 lru_cache 的参数,哈希值会缓存,内存和 dict 几乎一样

实测 Python 3.15 内置 frozendict:3.14 里是 NameError;不是 dict 的子类但属于 Mapping;赋值删除是 TypeError、update/pop/clear 等方法不存在;可哈希、能传给 lru_cache、能当 dataclass 默认值;和 MappingProxyType 的区别;占内存、构造、读取、哈希的耗时对比。

Python Python 3.15 frozendict 不可变字典 可哈希 MappingProxyType lru_cache 新特性 真实验证 动画演示
新版本特性实测 2026-10-30

Python 3.15 profiling.sampling 在 macOS 上报 Permission Error 要 sudo:cProfile 搬进 profiling.tracing 后 main、label 等四个名字没了

实测 Python 3.15 的 profiling 包:cProfile 搬到 profiling.tracing,main/label/io/importlib 四个名字消失(cProfile.main() 是 AttributeError);新的采样分析器 python -m profiling.sampling 在 macOS 上 run/attach/dump 都报 Permission Error,需要 sudo;cProfile 输出在 3.14 与 3.15 上结构相同,.prof 文件能互读。

Python Python 3.15 profiling.sampling cProfile profiling.tracing Permission Error Tachyon pstats 新特性 真实验证 动画演示
新版本特性实测 2026-10-30

ModuleNotFoundError: No module named 'sre_constants':升级 Python 3.15 会撞上的 12 个移除项,以及怎么在 3.14 上提前发现

实测升级 Python 3.15 会撞上的移除项:No module named sre_compile/sre_constants/sre_parse;glob.glob0/glob1、platform.java_ver、typing.no_type_check_decorator、ctypes.SetPointerType 变成 AttributeError;pathlib.PathInfo 等四个名字搬走;typing.ByteString、tarfile.version 开始警告;以及怎么在 3.14 上用 -W 提前发现。

Python Python 3.15 升级 sre_constants ModuleNotFoundError DeprecationWarning glob.glob0 typing.ByteString 移除 真实验证 动画演示
新版本特性实测 2026-10-30

升级 Python 3.15 后 open() 读老文件报 UnicodeDecodeError:默认 UTF-8 让 GBK 文件读不出来,read_text、configparser、subprocess 一起变

实测 Python 3.15 默认 UTF-8:GBK、ISO8859-1 环境下 open() 的默认编码 3.14 跟系统、3.15 一律 utf-8;3.14 写的 GBK 文件在 3.15 里 UnicodeDecodeError,反方向也读不了;GBK 环境下 print emoji 3.14 UnicodeEncodeError;read_text、configparser、subprocess 一起变;PYTHONUTF8=0 与 -X warn_default_encoding。

Python Python 3.15 UTF-8 UnicodeDecodeError open encoding PEP 686 GBK EncodingWarning 新特性 真实验证 动画演示
新版本特性实测 2026-10-30

Python 3.15 的报错信息变了吗:110 个出错小程序逐字比较,只有 AttributeError 的 Did you mean 和 % 格式化的 TypeError 变了

实测 Python 3.15 报错信息的变化:110 个常见出错小程序逐字比较,只有 6 个文字变了——AttributeError 的建议从 Did you mean: 'append'? 变成 Did you mean '.append' instead of '.appnd'?,% 格式化的 TypeError 重写;SyntaxError 31 个全部相同;10 个常见警告只多了 typing.ByteString;以及依赖报错文字的正则会怎样。

Python Python 3.15 报错信息 AttributeError Did you mean TypeError 格式化 SyntaxError 升级 真实验证 动画演示
新版本特性实测 2026-10-30

Python 3.15 比 3.14 快吗:18 个测试独立跑两遍,整体持平,json 更快、递归 fib 更慢,Homebrew 两个包的编译选项还不一样

实测 Python 3.14.9 对 3.15.0 的性能:18 个测试独立做两遍,几何平均比值 1.01 和 1.03(整体持平);递归 fib 两遍都是 1.23(3.15 慢),json.dumps 两遍是 0.89 和 0.86(3.15 快);Homebrew 的两个包编译选项不一样:3.14.9 有 --with-tail-call-interp,3.15.0 没有。

Python Python 3.15 性能 benchmark 3.14 对比 3.15 json fib tail-call 真实验证 动画演示
京ICP备2026067502号-1京公网安备11010502063487号