Python 3.9 正式发布

Python 3.9 和之后的版本将不再支持 Windows 7 ,还没用上 Windows 10 的可以考虑换系统了。

而且这里默认下载的是 64 位,不再是 32 位。

版本亮点

新的语法特性

>>> 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'}

做类型注解时,可以直接使用内置的集合类型如列表 list 和字典 dict 做泛型类型,而不用像以前一样要 from typing import List, Dict

def greet_all(names: list[str]) -> None:

for name in names:

print("Hello", name)

任意合法的表达式现在都可以用作装饰器了

新的内置特性

str.removeprefix(prefix)

str.removesuffix(suffix)

标准库新增特性:

解释器改进

相对于原先的 LL(1) 解析器,两者性能相当,但是 PEG 解析器更加灵活,以后用来设计新的语法一些 Python 内置对象 (range, tuple, set, frozenset, list, dict) 使用了

做了一个简单的测试:

# python 3.8

>>> timeit('dict()')

0.09337569999999573

>>> timeit('range(10)')

0.15194649999997978

# python 3.9

>>> timeit('dict()')

0.06748100000000079

>>> timeit('range(10)')

0.1062435999999991

差不多有 1/3 的提升,还是比较明显的。garbage collection does not block on resurrected objects;

a number of Python modules (_abc, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, _weakref) now use multiphase initialization as defined by PEP 489;

a number of standard library modules (_hashlib, _posixsubprocess,

新增标准库模块新的

发布流程变化

这项更改加快了发布的节奏,使主要版本可以预计每12个月发布一次,在每年的 10 月

感兴趣的小伙伴可以自行下载尝鲜咯!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐