Python3.11稳定版本发布,或许是最好的版本
共 1411字,需浏览 3分钟
·
2022-11-01 15:46
Python 3.11 稳定版本已正式发布!
Python 以速度慢著称,例如在 Python 中,常规循环比 C 中的类似循环慢几个数量级。
Python 官方正在着手改进这一缺陷。2020 年秋,Mark Shannon 提出了关于 Python 的几个性能改进。这个提议被称为香农计划 (Shannon Plan),他们希望通过几个版本的更新将 Python 的速度提高 5 倍。不久之后微软正式加入该计划,该公司正在支持包括 Mark Shannon、Guido van Rossum 在内的开发人员,致力于「Faster CPython」项目的研究。
「Faster CPython」项目中的一个重要提案是 PEP 659,在此基础上,Python 3.11 有了许多改进。
PEP 659 描述了一种「specializing adaptive interpreter」。主要思想是通过优化经常执行的操作来加快代码运行速度, 这类似于 JIT(just-in-time)编译。只是它不影响编译,相反,Python 的字节码是动态调整或可更改的。
Python被广泛认为是缓慢的。虽然 Python 永远无法达到 C、Fortran 甚至 Java 等低级语言的性能,但我们希望它的速度能够与脚本语言竞争,例如用于 Javascript 的 V8 或用于 lua 的 luajit。我们希望通过 CPython 实现这些性能目标,以使所有 Python 用户受益,包括那些无法使用 PyPy 或其他替代虚拟机的用户。
Python 3.11 中的一些新的主要新特性和变化包括:
一般变化
PEP 657 – 在错误信息报告中引入细粒度的 Error Locations
PEP 654 – Exception Groups and except*
PEP 680 - tomllib:支持在标准库中解析 TOML
bpo-46752 – 将任务组引入 asyncio
bpo-433030 – 正则表达式现在支持原子分组 (Atomic grouping):((?>...)),以及占有型量词 (
*+, ++, ?+, {m,n}+
)Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60%。
Typing changes
PEP 673 - Self 类型
PEP 655 - 将单个 TypedDict 项目标记为必需或可能缺失
PEP 675 - 任意文字字符串类型
PEP 681 - Data Class 转换
PEP 646 - 可变参数泛型 (Variadic Generics)
推荐阅读
【2022新书】深度学习R语言实战,568页电子书 用数学和Python入门机器学习核方法 · 电子书 超全干货2万字全文!李航《统计学习方法》读书笔记 《机器学习算法与Python实战》:搭建机器学习开发环境