您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    新版本尝鲜:Python 3.9版本中的新功用有哪些?
    时间:2020-07-10 08:04 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    又要到Python新版本发布的时辰了,测试版已然推出,残缺发行版将在不久之后与我们见面。这无疑令技术快乐喜欢者们十分兴奋,摩拳擦掌地等候上手一探求竟。

    新版本中有许多值得等候的新功用,本文就先带大家尝尝鲜。

    新版本尝鲜:Python 3.9版本中的新功用有哪些?

    1. 字典兼并

    这是笔者最喜欢的新功用之一,它拥有优美的语法。假设有两个字典a和b需求兼并,可以运用兼并运算符:

    兼并(merge)操作符|:

    a = {1: 'a', 2: 'b', 3: 'c'} 

    b = {4: 'd', 5: 'e'}c = a | b 

    print(c)[Out]: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'} 

    用来更新原始字典的更新运算符|=:

    a = {1: 'a', 2: 'b', 3: 'c'} 

    b = {4: 'd', 5: 'e'}a |= b 

    print(a)[Out]: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'} 

    假设字典共享一个公共键(common key),则运用第二个字典中的键值对:

    a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'} 

    b = {4: 'd', 5: 'e', 6: 'but different'}print(a | b)[Out]: {1: 'a', 2: 'b', 3: 'c', 6: 'but different',4: 'd', 5: 'e'} 

    运用迭代更新字典:|=运算符还有一个不错的中央,即可以经过可迭代对象(例如列表或生成器)运用新的键值对更新字典。

    a = {'a': 'one', 'b': 'two'} 

    b = ((i, i**2) for i in range(3))a |= b 

    print(a)[Out]: {'a': 'one', 'b': 'two', 0: 0, 1: 1, 2: 4} 

    假设尝试运用标准兼并运算符|停止相反的操作,将产生一个类型错误(TypeError),由于它仅允许字典(dict)类型之间的兼并操作。


    2. 字符串办法

    这个功用看起来“其貌不扬”,但实则十分适用。新版本添加了两个用于删除前缀和后缀的新字符串办法:

    “ Hello world” .removeprefix(“ He”) 

    [Out]:“ llo world” 

    Hello world” .removesuffix(“ ld”) 

    [Out]:“ Hello wor” 

    3. 新剖析器

    这是一个不可见的更改,但有能够成为Python未来开展中最重要的更改之一。

    Python以后运用的主要是基于LL(1)的语法,而该语法又可以由LL(1)剖析器停止解析,该剖析器运用单一的前向标记符从上到下,从左到右地解析代码。

    笔者简直不知道它是如何任务的,但是可以指出一些由于Python运用这种办法招致的成绩:

    Python包含非LL(1)语法;以后语法的某些部分运用了任务区,从而形成不必要的复杂性。

    LL(1)在Python语法中形成限制(没有可用的任务区)。此成绩突出阐明了以下代码基本无法运用以后剖析器完成(引发语法错误):

    with (open("a_really_long_foo") as foo, 

          open("a_really_long_bar")as bar): 

        pass 

    LL(1)在剖析器中以左递归中缀。意味着含义特定的递归语法能够招致解析树中的有限循环。

    一切这些要素(还有很多基本无法了解的要素)严重限制了Python言语的开展。而基于PEG的新剖析器将为Python开发人员提供更大的灵敏性,人们会从Python 3.10末尾留意到这一点。

    4. 类型提示

    Python是静态类型的,这意味着无需在代码中指定数据类型。这一特性本身没有成绩,但有时能够会形成混杂。

    从Python 3.5末尾,用户可以指定类型,但是操作起来十分费事。此次更新改动了这一点,举个例子:

    无类型提示(左)vs3.9中带类型提示(右)

    add_int函数的目的是为数值本身添加相反的数值。但是编辑器并不知道这一点,因此完全可以运用+将两个字符串加在一同,不会收回正告。如今可以将希冀的输入类型指定为int。运用此功用,编辑器可以立刻了解成绩。

    用户还可以十分详细地了解所包含的类型,例如:


    (责任编辑:admin)