参与:一鸣、Jamin
Python3.8 的热乎劲还没过去,Python 就又双叒叕要更新了。近日,3.9 版本的第四个 alpha 版已经开源。从文档中,我们可以看到官方透露的对 dict、math 等组件增加的新特性,以及下一步的开发进展。
自公开了 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 会有以下新特性:
- Dict:增加 Union 计算;
- 灵活的函数和变量注解;
- Python 从 3.9 开始会有稳定的年度更新模式;
- 垃圾回收可以应用于重用的对象上;
- 增加 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 3.9 将会继续开发,官方打算在 5 月 18 日推出第一个 beta 版本,第一个候选版本会在今年 8 月上旬放出,而最终版的公开时间定于 10 月 5 日。机器之心将会跟进报道。
参考链接:https://docs.python.org/3.9/whatsnew/3.9.html