通用类型注释,又名PEP 585,是许多Python主义者长期以来一直渴望的东西。现在,您可以指定集合及其项的类型,而无需依赖类型库:
def do_stuff(data: list[int]):
pass
以下是一些现在可以推广的集合:
在Python 3.9之前,合并到字典的标准方法是:
.update
方法:a.update(b)
传播运算符(你好 JS):{**a, **b}
好吧,我们又得到了一个。|
联合运算符完全按照它应该做的事情:2 个字典的 Aunion:
a = {'cars': 5, 'phones': 2}
b = {'cows': 10, 'lizards': 3}
a | b
// {'cars': 5, 'phones': 2, 'cows': 10, 'lizards': 3}
新的 .removesendfix()
和 .removeprefix()
字符串方法就是这样做的:
'SubaruImpreza`.removeprefix('Subaru') // 'Impreza'
'SubaruImpreza'.removesuffix('Impreza') // 'Subaru'
在Python 3.9中,使用新的解析器。它基于PEG(解析表达式语法),与使用LL(从左到右解析器)的旧语法不同。这样做是因为LL解析器的功能已经耗尽,并且实现新的语言功能变得越来越困难。最有可能的是,您会注意到没有区别 - 性能相当,并且验证了完全的向后兼容性。
仅当代码使用标准库中的解析器模块时,才需要关注它。它不久前被弃用,不能与新的解析器一起使用。作为一种解决方法,您可以使用参数 -X oldparser
或环境变量 PYTHONOLDPARSER=1
切换回旧解析器。
Python 3.9引入了一个名为zoneinfo的新模块。它实现了 ZoneInfo 类,该类提供对 IANA 时区的支持。
从 zoneinfo import ZoneInfo
从日期时间导入日期时间,时间详图
时间戳 = 日期时间(2020, 7, 15, 11, tzinfo=ZoneInfo(“America/Los_Angeles”))
Zoneinfo Module
Python 3.9 introduced a new module called zoneinfo. It implements the ZoneInfo class, which provides support for the IANA time zones.
另一个新模块 — 这次用于处理图形。目前,它只为有向无环图实现拓扑排序算法。如果你不明白我刚刚写的东西,你很可能不需要新模块。对于那些熟悉图论的人来说,这就是模块应该如何使用(取自Python文档):
from zoneinfo import ZoneInfo
from datetime import datetime, timedelta
timestamp = datetime(2020, 7, 15, 11, tzinfo=ZoneInfo("America/Los_Angeles"))