参与:一鸣、Jamin

Python3.8 的热乎劲还没过去,Python 就又双叒叕要更新了。近日,3.9 版本的第四个 alpha 版已经开源。从文档中,我们可以看到官方透露的对 dict、math 等组件增加的新特性,以及下一步的开发进展。

python的阿尔法怎么打 python alpha_python

自公开了 3.8 版本后,Python 的迭代依然在继续。目前是 Python3.9,这是一个正在开发的 Python 版本。其最新的 alpha 4.0 版本——3.9.0a4 已经公开。公开这一版本的原因是希望帮助开发者尽快测试新特性、修复 bug 并测试开源流程。在这一阶段,新特性还在增加,直到迭代到 beta 版本,甚至是候选版本。官方表示,当前版本不推荐应用到生产环境中,以免对业务造成影响。

开源地址:https://www.python.org/downloads/release/python-390a4/

Dict 有新功能,更灵活的函数和变量注解

和 3.8 版本相比,Python3.9 会有以下新特性:

  1. Dict:增加 Union 计算;
  2. 灵活的函数和变量注解;
  3. Python 从 3.9 开始会有稳定的年度更新模式;
  4. 垃圾回收可以应用于重用的对象上;
  5. 增加 os.pidfd_open,使得进程管理不需要 race 和 signal;

其他重要新特性

字典合并及操作符更新:

合并 (|) 以及更新 (|=) 操作符已归为内置的 dict 类别中

Import Error:

__import__() 现在反馈的是 ImportError 而不是 ValueError , 这个错误之前常发生在相对导入超过其顶层包的情况中。

math:

扩展了 math.gcd() 函数以便可以处理多个参数。而之前版本,它只支持处理两个参数。

添加 math.lcm() 函数,用以返还指定参数的最小公倍数。

添加 math.nextafter() 函数,在面向 x 指向 y 后返还下一个浮点值。

 

添加 math.ulp() 函数,用以返还最小有效位的浮点值。

其他优化

优化了用于分配及理解中的临时变量惯用语。现在理解中的 for y in[expr] 与简单分配的 y = expr 一样快,比如 :

sums = [s for s in [0] for x in data for s in [s + x]]

与 := 操作符不同的是,这种习惯用法不会将变量泄露至外部的作用域中。

python的阿尔法怎么打 python alpha_python_02

据悉,Python 3.9 将会继续开发,官方打算在 5 月 18 日推出第一个 beta 版本,第一个候选版本会在今年 8 月上旬放出,而最终版的公开时间定于 10 月 5 日。机器之心将会跟进报道。

参考链接:https://docs.python.org/3.9/whatsnew/3.9.html