Python 3.11 带来了性能改进、缓存重新设计等

Python

Python 是一种高级解释性编程语言,其哲学强调其代码的可读性。

经过一年的发展, 新版编程语言 Python 3.11 已经发布,新分支将支持一年半,之后再形成三年半的漏洞补丁。

同时,Python 3.12 分支的 alpha 测试开始 (根据新的开发时间表,新分支的工作在前一个分支发布前五个月开始,到下一个版本时达到 alpha 测试)。

Python 3.12 分支的 alpha 版本将持续七个月,在此期间将添加新功能并修复错误。 之后,将进行为期三个月的 Beta 测试,在此期间将禁止添加新功能,并将全力关注错误修复。 发布前的最后两个月,该分支将处于发布候选阶段,此时将进行最终稳定。

Python 3.11 主要新特性

在这个新版本中 为优化性能做了大量工作,因为新分支包含相关更改 通过函数调用的加速和内联部署,使用典型操作的快速解释器,以及 Cinder 和 HotPy 项目准备的优化。 根据负载的类型,代码执行速度会增加 10% 到 60%。 平均而言,通过 pyperformance 测试套件时的性能提高了 25%。

缓存机制已重新设计 字节码,这将解释器启动时间减少了 10-15%。 带有代码和字节码的对象现在由解释器静态分配,这使得消除从缓存中提取字节码和转换带有代码的对象以将它们放置在堆内存中的步骤成为可能。

添加 支持异常组,这使程序能够同时引发和处理几个不同的异常。 提出了新的异常类型 ExceptionGroup 和 BaseExceptionGroup 将多个异常组合在一起,并添加了表达式“except*”以将异常与组分开。

添加了一个特殊的 LiteralString 类型 如此孤单 可以包含与 LiteralString 类型兼容的文字字符串 (即,裸字符串和 LiteralString 类型的字符串,但不是 str 类型的任意或混合字符串)。 LiteralString 类型可用于限制将字符串参数传递给函数,任意替换可能导致漏洞的部分字符串,例如,在为 SQL 查询或 shell 命令生成字符串时。

除此之外,还有 提供标记字典的各个元素的能力 (TypedDict) 带有必需和非必需标志来确定必需和可选字段(默认情况下,如果总参数未设置为,则所有声明的字段都是必需的 伪造的)。

添加了@dataclass_transform 类、方法和函数装饰器,当指定时,静态类型检查器将对象视为使用 @dataclasses.dataclass 装饰器。

在此新版本中突出的其他更改包括:

  • 添加了在正则表达式中使用原子分组 ((?>...)) 和嫉妒(占有)量词(*+、++、?+、{m,n}+)的能力。
  • 添加了 TypeVarTuple 类型,它允许使用变量泛型,这与 TypeVar 不同,TypeVar 涵盖的不是一种类型,而是任意数量的类型。
  • 标准库包括带有解析 TOML 格式的函数的 tomllib 模块。
  • add_note() 方法已添加到 BaseException 类,它允许将文本注释附加到异常,例如添加在引发异常时不可用的上下文信息。
  • 添加了一个特殊类型 Self 来表示当前的私有类。 Self 可用于以比使用 TypeVar 更简单的方式注释返回类实例的方法。
  • 添加了“-P”命令行选项和 PYTHONAFEPATH 环境变量以禁用将潜在不安全文件路径自动连接到 sys.path。
  • Windows 平台的 py.exe 实用程序已得到显着增强,以支持“-V:”语法。 / “ 此外 ”- . »。
  • 许多 C API 宏已转换为常规或静态内联函数
  • uu、cgi、pipes、crypt、aifc、chunk、msilib、telnetlib、audiop、nis、sndhdr、imghdr、nntplib、spwd、xdrlib、cgitb、mailcap、ossaudiodev 和 sunau 模块已被弃用,并将从 Python 中删除。 3.13 发布。
  • 删除了 PyUnicode_Encode* 函数。
  • TaskGroup 类被添加到 asyncio 模块中,并实现了等待任务组完成的异步上下文管理器。
  • 使用 create_task() 方法将任务添加到组中。

最后 如果您有兴趣了解更多有关它的信息,您可以在中查看详细信息 以下链接。 


在 Google 中将其添加为首选来源