Python 3.9beta2版本发布了
Python 3.9 beta2 版本已经发布了,它包含了很多新的特性和改进,其中有7个新的 PEP (Python Enhancement Proposal)。
什么是PEP
PEP 是 Python Enhancement Proposal(Python增强提案)的缩写,是 Python 社区用于描述新功能、规范接口或者提出新想法的标准文档。PEP 是 Python 开发的重要组成部分,Python 开发过程中所做的每一个考虑过程都可以被记录在 PEP 中,PEP 以提高 Python 语言的质量为目标,经过 Python 开发者的讨论,在社区中得到广泛的认可和支持。
Python 3.9 beta2 中新增的 PEP
PEP 585: Type Hinting Generic Dicts and Lists in Standard Collections
这个提案推荐将标准库中的 dict 和 list 等集合类型强制转换为泛型,从而使它们能够被用于类型提示。此外,PEP 585 介绍了一个新的内置类型 typing.Annotated 来提供更详细的类型提示。
PEP 614: Relaxing Grammar Restrictions On Decorators
这个提案放宽了装饰器的语法限制,现在允许在 decorating expression 中使用函数调用语法。
下面是一个示例代码:
# Python 3.8
@foo('arg')
def func():
pass
# Python 3.9
@foo('arg')()
def func():
pass
PEP 593: Flexible Function and Variable Annotations
PEP 593 引入了一个新的类型 Any,它表示任何类型。此外,它还允许函数注释和类型提示的一些灵活性,能够使开发者更加自由地使用类型注释。
PEP 602: CPython adopts annual release cycle
这个提案是官方支持 Python 采用年度版本发布的请求,从而更好地推动开发进程。这就意味着开发者将更快地得到 Python 的新功能和改进。
PEP 614: Relaxing Grammar Restrictions On Decorators
PEP 614 引入了一种新的语法,用于给 Class-based decorators 中的类添加装饰器。这种语法将会减少设计时的复杂性。
下面是一个示例代码:
# Python 3.8
@decorator
class Foo:
pass
# Python 3.9
class Foo:
@decorator
pass
PEP 613: Explicit Type Aliases
PEP 613 引入了显式的类型别名语法和 api,这使得类型提示更加清晰明了。随着这个提案的实现,Python 将会支持显式声明类型别名。
下面是一个示例代码:
from typing import List
# 新添加了 ListAlias
ListAlias = List[int]
def func(l: ListAlias):
pass
PEP 615: Merging typed_ast into CPython
这个提案将 typed_ast 库合并到 Python 标准库中,以便具有 ast 节点的 Python 库或工具能够容易地操作这些节点的类型注释。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3.9 beta2版本发布了,看看这7个新的PEP都是什么 - Python技术站