26

Python3.9又更新了:dict内置新功能,正式版十月见面

 4 years ago
source link: https://www.jiqizhixin.com/articles/2020-02-28-7
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FFraErq.png!web

自公开了 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]]

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

i6J7Rnf.png!web

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK