欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

Python 3.9.0新特性

Python基础 迷途小书童 3年前 (2020-10-20) 2907次浏览 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)

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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.