Python 3.12.0 发布了第 2 个 RC 版本,也是最后一个 RC。正式版将于 2023 年 10 月 2 日星期一发布。
开发团队表示,进入候选版本阶段后,只接受经过 review 且修复明确错误的代码。RC2 是发现并修复重要问题的最后机会。
从该版本开始,3.12 系列将不进行 ABI 更改,目标是尽可能少地更改代码。
Python 3.12 中部分新的主要新特性和变化:
- 针对泛型类的新类型注释语法 (PEP 695)
- 更灵活的 f-string 解析 (PEP 701)
- 支持 buffer 协议 (PEP 688)
- 改进错误消息
- 改进性能
- 支持 Linux perf 分析器在跟踪过程中报告 Python 函数名称
- 根据 PEP 623 提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员
- 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃)
- 废弃的 `smtpd` 和 `distutilsd` 模块已被删除(查看 PEP 594 和 PEP 632),setuptools 包(默认安装在 virtualenvs 和许多其他地方)继续提供 `distutilsd` 模块
- 其他一些旧的、被破坏的、和已被废弃的函数、类和方法也被删除
- 整数的内部表示已发生变化,为性能增强做好准备(这不会影响大多数用户,因为它是内部细节变更,但可能会导致 Cython 生成的代码出现问题)
- ……
详情。