1. 发布时间表
- 5月初 :发布首个Beta版本
- 后续 :依次发布3个Beta版本和2个候选版本
- 10月 :发布最终正式版本
注:3.14版本不再添加新功能,仅包含错误修复和微小更改。
2. 新功能特性
2.1. PEP 765:禁止 finally 块中使用控制流语句
- 禁止内容 : return 、 break 、 continue 在 finally 块中被禁止
- 目的 :避免代码逻辑混淆(如 finally 块中的 return 会覆盖 try 块的返回值, continue 导致循环无限执行) #技术分享 #掘金
- 现状 :3.14版本发出语法警告,未来版本将变为语法错误
2.2. PEP 648:延迟评估类型注释
- 改进 :类型注释在使用时才进行评估(此前需提前定义所有类型)
- 优势 :支持前向引用(无需将类型声明为字符串),避免因未定义类型导致的早期错误
C 2.3. except 块语法简化
- 变化 :允许省略多个异常类型的括号
except (ValueError, TypeError) as e:
pass
except ValueError, TypeError as e: pass
- 注意 :若需捕获异常实例仍需保留括号(如 except (ValueError, TypeError) as e )
3. 性能改进
3.1. 尾调用解释器(新解释器架构)
- 原理 :通过尾调用优化减少函数调用开销,避免堆栈溢出
- 效果 :整体速度提升约13%
- 实现 :替代传统循环执行字节码,改用函数自调用(尾调用),消除循环分支开销
3.2. JIT优化器(实验性)
- 现状 :处于早期阶段,平均性能提升约2%
- 方向 :将字节码编译为机器码,未来版本持续优化
3.3. IO模型与文件操作
- 小文件读写 :速度提升约15%(减少系统调用次数)
- 默认缓冲区 :从8KB增加到128KB(Windows下速度提升3-5倍)
3.4. 压缩与编解码
- Zlib压缩 :默认级别从9降至6,性能提升70%;Windows采用Zlib NG,再提升80%
- Base64解码 :速度提升10倍
- 模块导入 :速度提升6倍
3.5. 其他优化
- UUID函数 (版本3/4/5/8):速度提升20%-40%
- 多线程优化 :实验性移除GIL(No GIL项目),部分测试速度提升2-4倍(仍需后续版本完善)
4. 接受的PEP
Python 4.1. PEP 741:Python配置API增强
- 添加 py_config_get() 和 py_config_set() 函数,提升配置灵活性
4.2. PEP 762:弃用PGP签名
- 改用现代签名系统(如RSA/ECC)验证CPython工件,提升安全性
5. 其他小变化
5.1. 内置函数与类型
- map 函数:新增严格参数,不再静默忽略额外值
- memoryview :支持下标访问,成为通用可订阅类型
5.2. 标准库改进
- 路径处理 : pathlib 新增 copy_to() 、 move_to() 等方法
- 单元测试 : unittest 默认生成彩色输出
- HTTP服务器 :支持根据浏览器请求切换深色主题
- JSON模块 :新增工具化功能(类似 jq ,支持验证和打印)
5.3. 功能增强
- zip文件 :忘记关闭时删除会发出资源警告
- pickle :默认协议从4升级到5,提升性能
- 小数模块 :新增 from_digits() 等构造方法
- Unicode :数据库更新至16.0版本,支持更多字符
- UUID :新增版本6、7、8支持
6. 开发统计数据(截至2025年4月9日)
- 代码变更 :1,716次提交,646次分支,2,135个文件更改
- 代码量 :新增176K,删除259K
- 修复与改进 :400+错误修复,67个新函数/类/方法,29项性能改进
7. 总结
Python 3.14聚焦于 代码规范优化 (如 finally 块限制)、性能提升 (尾调用解释器、IO 优化)和 开发者体验改进 (延迟注释、配置 API)。
尽管新功能较少,但为后续版本的 JIT 编译、GIL 移除等重大改进奠定了基础,值得关注性能敏感场景的优化效果。