发布周期一年了,前几天还以为3.9刚出来的时候,3.10的a2已经出来了(汗)。写到这里,下一个α版本会和正式版同时发布,所以是按计划进行的,只是节奏有点快(^^;(←这是我刚开始的时候的评论)写这篇文章。)
不过,我很好奇下一个版本会出现什么,所以我想提取和总结一下。3.9 的下一个版本是 3.10 而不是 4.0(笑)。首先是通常的开发路线图(PEP-619)。
- 3.10.0 开发开始:2020-05-18(完成)
- 3.10.0 alpha 1:2020-10-05(完成)
- 3.10.0 alpha 2:2020-11-02-> 2020-11-04(已完成)
- 3.10.0 alpha 3:2020-12-07(完成)
- 3.10.0 alpha 4:2021-01-04(已完成)
- 3.10.0 alpha 5:2021-02-03(已完成)
- 3.10.0 alpha 6:2021-03-01(完成)
- 3.10.0 alpha 7:2021-04-06(完成)
- 3.10.0 beta 1:2021-05-03(完成)
- 3.10.0 beta 2:2021-05-31(完成)
- 3.10.0 beta 3:2021-06-17(完成)
- 3.10.0 beta 4:2021-07-10(完成)
- 3.10.0 候选1:2021-08-03(已完成)
- 3.10.0候选2:2021-09-07(已完成)
- 3.10.0 决赛:2021-10-04(完成!)
按照计划,3.10 于 2021 年 10 月发布,仅比 3.9 晚了一年。
更改日志
2021-10-04
- 基于 2021-10-04 发布的 3.10.0 修订。
- 添加了“PEP-626:显示用于调试等的准确行号”。
- 描述已更改,因为“PEP-563:注释的惰性评估成为默认值”的引入已被推迟。
2021-05-04
- 基于 2021-05-03 发布的 3.10 beta 1 进行了修订。
- 添加了关于结构模式匹配的内容
- 添加了需要 OpenSSL 1.1.1 或更高版本的情况
2021-01-24
- 基于 2021-01-04 发布的 3.10 alpha 4 进行了修订。
- 在弃用时间表中添加了 PEP-623(与 Unicode 内部实现相关)
- 我写了一篇关于“PEP-612:参数规范变量”的单独文章,并添加了一个链接。
2020-11-07
- 第一个版本。a2 于 2020 年 10 月 4 日发布,但我是根据新内容编写的。
精选新功能
PEP 634:结构模式匹配
我认为这是 Python 3.10 的主要功能,但模式匹配功能即将加入 Python。这是 Rust 和 Scala 中熟悉的特性,我认为它将来会在 Python 中大量使用,因为 Python 没有 switch 语句。
→ 另一篇文章:Python 3.10 新特性(二)——Python 中的 match 语句
PSP 626:显示准确的行号以进行调试等。
发生运行时错误时会显示堆栈跟踪,其中的行号是非常重要的调试信息。在大多数情况下,以前的实现显示正确的行号,但在某些情况下不是。正是这个 PEP 修复了它。
之前,运行字节码对应的源代码行号f_lineno
保存在框架对象的属性中。除此之外co_lines()
,还增加了一个调用方法,使字节码和行号的关系更加清晰。