软硬件环境
- windows 10 64bit
- python 3.9.0
前言
2020年10月5日,python官方发布了3.9.0正式版,本文就来看看,新版本到底有哪些变化
下载安装
首先来到官方下载网页,https://www.python.org/downloads/,傻瓜式安装,就不细讲了


这里需要注意一点,如果你原来的系统中已经有了python环境,比如像我已经安装过anaconda,这时候就不要讲python3.9加入到系统环境变量PATH中了,以免破坏原来的环境。
Python 3.9.0特性
新的语法特性
- 为
dict增加合并运算符
合并 (|) 与更新 (|=) 运算符已被加入内置的dict类。 它们为现有的dict.update和{**d1, **d2}字典合并方法提供了补充>>> x = {"key1": "value1 from x", "key2": "value2 from x"} >>> y = {"key2": "value2 from y", "key3": "value3 from y"} >>> x | y {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'} >>> y | x {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'} - 新增用于移除前缀和后缀的字符串方法
增加了
str.removeprefix(prefix)和str.removesuffix(suffix)用于方便地从字符串移除不需要的前缀或后缀。 也增加了bytes,bytearray以及collections.UserString的对应方法 -
标准多项集中的类型标注泛型
在类型标注中现在你可以使用内置多项集类型例如
list和dict作为通用类型而不必从typing导入对应的大写形式类型名(例如List和Dict)。 标准库中的其他一些类型现在同样也是通用的,例如queue.Queuedef greet_all(names: list[str]) -> None: for name in names: print("Hello", name) - 放宽对装饰器的语法限制
新的解析器
3.9.0使用于基于PEG的新解析器替代LL。 新解析器的性能与旧解析器大致相当,但PEG在设计新语言特性时的形式化比LL更灵活。
在3.10中,旧解析器将被移除,依赖于它的所有功能也将被移除(主要是parser模块,它早已被弃用)。只有在3.9中,你可以使用命令行开关(-X oldparser)或环境变量(PYTHONOLDPARSER=1) 切换回LL解析器