Python 3.11 是 Python 的又一重要版本更新,专注于提高性能、改善类型提示、增强错误信息和丰富标准库功能。Python 3.11 带来了显著的性能提升和开发者友好的新特性,使得编程更为高效、代码更具可读性。
性能改进:
- Python 3.11 的速度比前一版本 Python 3.10 提升了约 10%-60%,使代码执行更为流畅。许多底层实现进行了优化,包括对字节码解释器、整数运算和内置函数的改进。
- 这种性能改进主要得益于 Faster CPython 项目带来的底层代码优化。
Self
类型提示:
- Python 3.11 引入了
Self
类型,支持在类的方法中引用当前类类型,尤其适合链式调用和面向对象设计,提升了代码的类型检查和可读性。
可变类型的类型注解:
- 使用
typing
模块中的LiteralString
、NotRequired
、Required
等新特性可以更精确地定义字段是否为必需项,增强了对数据结构的定义和检查。
类型推断改进:
- 引入了
TypedDict
,允许定义具有类型提示的字典结构,用于 JSON 或配置数据。这样在处理复杂数据时可以获得更好的类型支持。
更直观的错误提示:
- Python 3.11 大大改进了错误提示信息的可读性。例如,在未找到属性或变量时,错误提示会提供更详细的上下文,以便更快地定位问题。
- 异常回溯(traceback)现在可以展示更详细的错误来源,特别适合调试复杂代码。
异常分组:
- Python 3.11 引入了
ExceptionGroup
,可以同时处理多个异常,使得在异步编程或批量任务处理时能够一次捕获并处理多个异常。 except*
语句的引入可以帮助处理多个异常时提供灵活性,特别适合并发或批处理任务中对异常的处理需求。
可微函数(Core MLIR Integration):
- Python 3.11 为了更好地支持科学计算,引入了部分 MLIR (Multi-Level Intermediate Representation) 功能,使得对高性能计算和机器学习框架的支持更好。
tomllib
模块:
- Python 3.11 原生支持
TOML
解析,通过新增的tomllib
模块,开发者可以更方便地读取.toml
配置文件。这一更新也表明 Python 更加关注现代项目的配置需求。
typing
模块增强:
typing
模块增加了诸如Required
和NotRequired
等新功能,以便对TypedDict
类型的字段进行更精确的必填性控制。
标准库其他更新:
- 许多标准库模块(如
asyncio
、concurrent.futures
、socket
和http
)都进行了改进,提升了易用性和性能。 datetime
模块的改进提供了更丰富的时间处理方法,特别是跨时区操作变得更高效。
改进的解析器和编译器:
- 新的字节码解释器在内存和 CPU 占用上更加优化,对许多常见操作的执行速度更快。
CPython
解释器的持续优化确保了 Python 在性能密集型任务中有更好的表现,尤其是数据科学和机器学习等领域。