金磊 发自 凹非寺量子位 报道 | 公众号 QbitAI
Python3.9,「千呼万唤始出来」。
先来速看下此次发布版本的重点。
新语法特点:
PEP 584,为 dict 增加合并运算符。PEP 585,标准多项集中的类型标注泛型。PEP 614,放宽对装潢器的语法限制。新内置特点:
PEP 616,移除前缀和后缀的字符串方式。新标准库中的特点:
PEP 593,天真的函数和变量标注。添加了 os.pidfd_open() ,答理不带竞争和旌旗灯号的历程办理。诠释器方面的改良:
PEP 573,从 C 扩大类型的方式快速会见模块状态。PEP 617,CPython 而今利用基于 PEG 的新解析器。……新库模块:
PEP 615,IANA 时区数据库而今已包孕于标准库的 zoneinfo 模块。图的拓扑排序实现而今新的 graphlib 模块供应。为了更好地理解此次更新,Twitter上一名16岁少年Pratham Prasoon,还克己了一张「Python 3.9新特点必知图」。
列出了他认为较量主要的八大年夜新特点,广受网友爱评。
字典合并与更新运算符
此次「字典的合并与更新运算符」的新特点,是Python3.9的一大年夜亮点。
合并 (|) 与更新 (|=) 运算符已被到场内置的 dict 类,扩充了现有的 dict.update 和 {**d1, **d2} 字典合并方式。
在Prasoon供应的图中也显现了对应的示例,以下图所示:
新增用于移除前缀和后缀的字符串方式
在Python的官方文档,和Prasoon的图表中,也偏重显现了新的用于「移除前缀和后缀的字符串」方式。
str.removeprefix(prefix)和str.removesuffix(suffix)可以利便地从字符串中,移除不需要的前缀或后缀:
标准多项集中的类型标注泛型
在类型标注方面,而今可以利用内置的多项集类型(例如 list 和 dict)作为通用类型,而没需要再从 typing 导入对应的大年夜写形式类型名。
__import__()特点点窜
__import__() 而今会激起 ImportError 而不是 ValueError。
至于缘由,在Python的官方文档中有响应的诠释:后者曾会在相对导入超越其最高层级包时产生。
新增的模块
在新增模块方面,zoneinfo模块为标准库引入了IANA 时区数据库。
这是一个基于系统时区数据的实体 datetime.tzinfo 实现,示例以下图所示。
改良的模块
除新增的模块外,Python3.9还对本来的一些模块进行了改良。
Prasoon举出了他认为较量主要的一项——Random。
名为random.Random.randbytes的方式,可以用于生成随机字节串,以下图所示。
别的,还有cancel_futures。
Python3.9将新的 cancel_futures 形参,添加到 concurrent.futures.Executor.shutdown(),可以打消还没有最早运行的所有挂起的 Future,而没需要期待它们完成运行再封闭履行器。
当然,除这八大年夜新特点外,Python官方文档也加倍具体地列举了此次更新的内容。
感爱好的读者可以戳文末链接做更深切的体会。
关于作者
Pratham Prasoon是一名16岁的印度高中生,对金融布满豪情,对编程世界布满好奇,自称是一个科学怪才(science geek)。
作为一名编程人员,他认为本身是「东西不成知」类型选手,也就是说,没有稀奇唯一是利用的编程措辞,而是会按照本身的目标而做出选择。
今朝,他正在进修React、 Flask、Django和Tensorflow。
https://docs.python.org/zh-cn/3.9/whatsnew/3.9.htmlhttps://twitter.com/PrasoonPratham/status/1313392420038483968