• 看看Python 3.9中即将推出的令人敬畏的新功能


    泛型类型批注

    通用类型注释,又名PEP 585,是许多Python主义者长期以来一直渴望的东西。现在,您可以指定集合及其项的类型,而无需依赖类型库:

    def do_stuff(data: list[int]): 
        pass
    
    • 1
    • 2

    以下是一些现在可以推广的集合:

    • tuple
    • list
    • dict
    • set
    • frozenset
    • type
    • collections.deque
    • collections.abc.Coroutine
    • re.Pattern
    • and many more

    字典联合运算符

    在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}
    
    • 1
    • 2
    • 3
    • 4

    删除后缀和前缀

    新的 .removesendfix().removeprefix() 字符串方法就是这样做的:

    'SubaruImpreza`.removeprefix('Subaru') // 'Impreza' 
    'SubaruImpreza'.removesuffix('Impreza') // 'Subaru'
    
    • 1
    • 2

    V新解析器

    在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"))
    
    • 1
    • 2
    • 3
  • 相关阅读:
    从一到无穷大 #3 对象存储.浅谈
    k8s-实战——kubeadm二进制编译
    基于 IP 的 DDOS 攻击实验
    【MQTT从入门到提高系列 | 01】从0到1快速搭建MQTT测试环境
    多线程之间如何进行通信 ?
    OpenCV4(C++)—— 图像噪声与图像滤波
    Flink 基础 -- 应用开发(项目配置)
    金融时间序列模型
    Cypress 踩坑记 - DOM 遮挡
    浏览器插件官方demo学习(二):删除浏览数据、设置当前网站显示的内容
  • 原文地址:https://blog.csdn.net/ekcchina/article/details/125602114