Python 3.11.0 第四个 Beta 版本已发布。按照此前的发布日程,Beta4 原本是 Beta 阶段的最后一个版本,但目前计划出现了变动,开发团队表示还需要再发布 Beta5,目标是在 Beta5 之后没有 ABI 更改,并且在第一个候选版本 3.11.0rc1 之后尽可能少地更改代码。为实现这一目标,在 Beta 阶段尽可能多地进行测试非常重要。
在候选版发布之前,功能可能会被修改或在极少数情况下被删除。因此不建议在生产环境中使用 Beta 版本。
与 3.10 相比,Python 3.11 的主要变化
- PEP 657 – 在错误信息报告中引入细粒度的 Error Locations
- PEP 654 – Exception Groups and except*
- PEP 673 - Self 类型
- PEP 646 - 可变参数泛型 (Variadic Generics)
- PEP 680 - tomllib:支持在标准库中解析 TOML
- PEP 675 - 任意文字字符串类型
- PEP 655 - 将单个 TypedDict 项目标记为必需或可能缺失
- bpo-46752 – 将任务组引入 asyncio
- PEP 681 - Data Class 转换
- bpo-433030 – 正则表达式现在支持原子分组 (Atomic grouping):((?>...)),以及占有型量词 (
*+, ++, ?+, {m,n}+
) - Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60%
Python 3.11 的下一个预览版本将是 3.11.0b5,目前计划于 2022 年 7 月 25 日发布。正式版则计划于 2022 年 10 月 3 日发布。