欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Python 3.9.0新特性

Python基础 迷途小书童 4年前 (2020-10-20) 3875次浏览 0个评论

软硬件环境

  • windows 10 64bit
  • python 3.9.0

前言

2020年10月5日,python官方发布了3.9.0正式版,本文就来看看,新版本到底有哪些变化

下载安装

首先来到官方下载网页,https://www.python.org/downloads/,傻瓜式安装,就不细讲了

python3.9
python3.9

这里需要注意一点,如果你原来的系统中已经有了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的对应方法

  • 标准多项集中的类型标注泛型

    在类型标注中现在你可以使用内置多项集类型例如listdict作为通用类型而不必从typing导入对应的大写形式类型名(例如ListDict)。 标准库中的其他一些类型现在同样也是通用的,例如queue.Queue

    def 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解析器

喜欢 (0)

您必须 登录 才能发表评论!