Python 3.9 正式发布!一图秒懂新特性


Python 3.9 正式发布!一图秒懂新特性文章插图
Python 3.9 正式发布!一图秒懂新特性文章插图
金磊 发自 凹非寺量子位 报道 | 公众号 QbitAIPython3.9 , 「千呼万唤始出来」 。 先来速看下此次发布版本的重点 。 新语法特性:

  • PEP 584 , 为 dict 增加合并运算符 。
  • PEP 585 , 标准多项集中的类型标注泛型 。
  • PEP 614 , 放宽对装饰器的语法限制 。
新内置特性:
  • PEP 616 , 移除前缀和后缀的字符串方法 。
新标准库中的特性:
  • PEP 593 , 灵活的函数和变量标注 。
  • 【Python 3.9 正式发布!一图秒懂新特性】添加了 os.pidfd_open, 允许不带竞争和信号的进程管理 。
解释器方面的改进:
  • PEP 573 , 从 C 扩展类型的方法快速访问模块状态 。
  • PEP 617 , CPython 现在使用基于 PEG 的新解析器 。
  • ……
新库模块:
  • PEP 615 , IANA 时区数据库现在已包含于标准库的 zoneinfo 模块 。
  • 图的拓扑排序实现现在已由新的 graphlib 模块提供 。
为了更好地理解此次更新 , Twitter上一位16岁少年Pratham Prasoon , 还自制了一张「Python 3.9新特性必知图」 。
列出了他认为比较重要的八大新特性 , 广受网友好评 。
Python 3.9 正式发布!一图秒懂新特性文章插图
字典合并与更新运算符此次「字典的合并与更新运算符」的新特性 , 是Python3.9的一大亮点 。
合并 (|) 与更新 (|=) 运算符已被加入内置的 dict 类 , 扩充了现有的 dict.update 和 {**d1, **d2} 字典合并方法 。
在Prasoon提供的图中也展示了对应的示例 , 如下图所示:
Python 3.9 正式发布!一图秒懂新特性文章插图
新增用于移除前缀和后缀的字符串方法在Python的官方文档 , 以及Prasoon的图表中 , 也着重展示了新的用于「移除前缀和后缀的字符串」方法 。
str.removeprefix(prefix)和str.removesuffix(suffix)可以方便地从字符串中 , 移除不需要的前缀或后缀:
Python 3.9 正式发布!一图秒懂新特性文章插图
标准多项集中的类型标注泛型在类型标注方面 , 现在可以使用内置的多项集类型(例如 list 和 dict)作为通用类型 , 而不必再从 typing 导入对应的大写形式类型名 。
Python 3.9 正式发布!一图秒懂新特性文章插图
__import__特性修改__import__ 现在会引发 ImportError 而不是 ValueError 。
至于原因 , 在Python的官方文档中有相应的解释:后者曾经会在相对导入超出其最高层级包时发生 。
Python 3.9 正式发布!一图秒懂新特性文章插图
新增的模块在新增模块方面 , zoneinfo模块为标准库引入了IANA 时区数据库 。
这是一个基于系统时区数据的实体 datetime.tzinfo 实现 , 示例如下图所示 。
Python 3.9 正式发布!一图秒懂新特性文章插图
改进的模块除了新增的模块外 , Python3.9还对原有的一些模块进行了改进 。
Prasoon举出了他认为比较重要的一项——Random 。
名为random.Random.randbytes的方法 , 可以用于生成随机字节串 , 如下图所示 。