Python 3各版本的新特性对比 发表于 2024-11-12 | 分类于 Python | 暂无评论 Python 3系列的各个版本都带来了许多重要的新特性和改进,从语法到标准库的增强,都为开发者提供了更好的编程体验和更高效的开发方式。 Python是一种简单易学、功能强大的编程语言,广泛应用于各个领域。Python 3是Python语言的最新版本系列,自发布以来已经经历了多个版本的更新和改进。本文将介绍Python 3各个版本的新特性,包括Python 3.0到Python 3.10的重要变化和改进。 ### 一、Python 3.0 Python 3.0是Python 3系列的首个版本,于2008年发布。该版本引入了许多重要的变化,其中一些是为了解决Python 2中存在的设计缺陷和不一致性。以下是Python 3.0的一些主要特性: 1. print函数:Python 3.0中,print语句变成了一个函数,使用了新的语法。例如,print "Hello, World!"在Python 3.0中变成了print("Hello, World!")。 2. 整数除法:在Python 3.0中,整数除法的结果将总是得到浮点数,即使被除数和除数都是整数。 3. Unicode支持:Python 3.0采用了更加一致和统一的Unicode支持,字符串默认为Unicode字符串。 ### 二、Python 3.1 Python 3.1于2009年发布,是Python 3系列的第二个版本。该版本主要集中在性能改进和bug修复上。以下是Python 3.1的一些主要特性: 1. 垃圾回收:Python 3.1引入了改进的垃圾回收机制,提高了内存管理的效率。 2. 多线程:Python 3.1中的多线程支持得到了改进,提供了更好的线程安全性和性能。 3. 新的库和模块:Python 3.1引入了一些新的标准库和模块,包括unittest模块的改进和添加了fractions模块等。 ### 三、Python 3.2 Python 3.2于2011年发布,是Python 3系列的第三个版本。该版本引入了一些新的特性和改进,包括: 1. concurrent.futures模块:Python 3.2引入了concurrent.futures模块,提供了一个高级的接口来处理并发任务。 2. yield from语法:Python 3.2中,引入了yield from语法,简化了使用生成器的代码。 3. functools.lru_cache装饰器:Python 3.2引入了functools.lru_cache装饰器,提供了一个简单而有效的缓存机制。 ### 四、Python 3.3 Python 3.3于2012年发布,是Python 3系列的第四个版本。该版本引入了一些新的语言特性和库改进,包括: 1. yield表达式:Python 3.3中,yield语句可以作为表达式使用,可以将值发送给生成器。 2. venv模块:Python 3.3引入了venv模块,用于创建和管理虚拟环境。 3. 新的语法特性:Python 3.3引入了一些新的语法特性,如yield from语句,以及更好的异常链式处理。 ### 五、Python 3.4 Python 3.4于2014年发布,是Python 3系列的第五个版本。该版本引入了一些新的语言特性和库改进,包括: 1. asyncio库:Python 3.4引入了asyncio库,提供了一种基于协程的异步编程模型。 2. enum模块:Python 3.4引入了enum模块,用于定义枚举类型。 3. pathlib模块:Python 3.4引入了pathlib模块,提供了一种更简洁和面向对象的路径操作API调用错误。 ### 六、Python 3.5 Python 3.5于2015年发布,是Python 3系列的第六个版本。该版本引入了一些新的语言特性和库改进,包括: 1. async/await语法:Python 3.5引入了async/await语法,使得异步编程更加简洁和易于理解。 2. 类型提示:Python 3.5开始支持类型提示,通过给函数和变量添加类型注解,可以提供更好的代码可读性和静态类型检查。 3. 新的标准库模块:Python 3.5引入了一些新的标准库模块,如typing模块用于类型提示,以及zipapp模块用于创建可执行的ZIP应用。 ### 七、Python 3.6 Python 3.6于2016年发布,是Python 3系列的第七个版本。该版本引入了许多新的语言特性和改进,包括: 1. 字典排序:Python 3.6中,字典保持插入顺序,使得字典的迭代顺序可预测。 2. f-strings:Python 3.6引入了f-strings,一种新的字符串格式化语法,提供了更简洁和直观的方式来格式化字符串。 3. 异常链式处理:Python 3.6支持异常链式处理,可以在异常处理中显示地关联多个异常。 ### 八、Python 3.7 Python 3.7于2018年发布,是Python 3系列的第八个版本。该版本引入了一些新的语言特性和库改进,包括: 1. 数据类:Python 3.7引入了数据类,通过使用简单的语法,可以自动为类生成一些常见的方法,如init和repr。 2. 异步生成器:Python 3.7中,引入了异步生成器语法,用于更方便地处理异步编程中的迭代器。 3. 上下文变量绑定:Python 3.7引入了上下文变量绑定语法,使得在with语句中可以将上下文管理器的结果绑定到一个变量。 ### 九、Python 3.8 Python 3.8于2019年发布,是Python 3系列的第九个版本。该版本引入了一些新的语言特性和库改进,包括: 1. Walrus运算符:Python 3.8引入了Walrus运算符(:=),允许在表达式中进行变量赋值。 2. f-strings改进:Python 3.8对f-strings进行了改进,支持在格式化字符串中使用等号和括号。 3. 异步迭代器和异步生成器改进:Python 3.8对异步迭代器和异步生成器进行了改进,提供了更好的语法和性能。 ### 十、Python 3.9 Python 3.9于2020年发布,是Python 3系列的第十个版本。该版本引入了一些新的语言特性和库改进,包括: 1. 字典合并运算符:Python 3.9引入了字典合并运算符(|),用于合并两个字典。 2. 类型提示改进:Python 3.9对类型提示进行了改进,支持更多的类型注解语法和类型推断。 3. 新的标准库模块:Python 3.9引入了一些新的标准库模块,如zoneinfo模块用于处理时区信息,以及graphlib模块用于处理图形数据结构。 ### 十一、Python 3.10 Python 3.10于2021年发布,该版本引入了一些新的语言特性和库改进,包括: 1. 匹配模式:Python 3.10引入了匹配模式(match statement),它是一种更简洁和直观的模式匹配语法,可以用于替代复杂的if-elif-else结构。 2. 结构化的异常上下文:Python 3.10对异常上下文进行了改进,使得异常的上下文信息更加结构化和易于访问。 3. zoneinfo模块改进:Python 3.10对zoneinfo模块进行了改进,提供了更好的时区支持和操作。 ### 十二、Python 3.11 主要特性 : Python 3.11 发布于 2022 年 10 月 24 日 1. Python 3.11 的速度比 Python 3.10 快 10-60%。在平均状况下,在标准基准测试(standard benchmark suite)中可见1.25倍的加速效果。 2. 新的语法特性:PEP 654:异常组与 except* 3. 新的内置特性:PEP 678:可用注释丰富异常 4. 新的标准库模块:PEP 680: tomllib — 标准库中对解析 TOML 的支持 ### 十三、Python 3.12 主要特性 Python 3.12 已于 2023 年 10 月 2 日发布,值得注意的是,distutils 包已从标准库中移除。 os 和 pathlib 中的文件系统支持得到了许多改进,一些模块的性能也得到了提升。 在 3.12 版本当中可以创建子解释器,可以为每个子解释器单独创建一个 GIL,这样就可以让 Python 充分利用多核的性能。目前在 CPython3.12 当中只能够通过 C 扩展 API 创建,在 Python 层面当中还不能够使用,预计在 CPython3.13 当中能够直接在 Python 层面进行调用。 1. 新的语法特性:PEP 695,类型形参语法和 type 语句 2. 新的语法特性:PEP 701,f-字符串 语法的改进,使其更加灵活 3. 解释器的改进:PEP 684,单独的 GIL,PEP 669,低开销的监控 ### 十四、Python 3.13 主要特性 Python 3.13 已于 2024 年 10 月 7 日发布 包含多项针对语言、实现和标准库的改变。 最大的变化包括一个新的 交互式解释器,以及对于在 自由线程模式 (PEP 703) 下运行和 即时编译器 (PEP 744) 的实验性支持。 解释器的改进: 大幅改进的 交互式解释器 和 改进的错误消息。PEP 703: CPython 3.13 引入了实验性的无全局解释器锁(no-GIL)支持。PEP 744: 增加了一个基本的 JIT 编译器。 目前默认是禁用的(但以后可能启用), 能够小幅提升性能 。 自由线程的 CPython 现在 CPython 具有对运行于禁用 global interpreter lock (GIL) 的自由线程模式的实验性支持。 这是一个实验性的特性因而默认是不启用的。 自由线程模式需要一个不同的可执行程序,通常名为 python3.13t 或 python3.13t.exe。 标记为 free-threaded 的预构建二进制文件可作为官方 Windows 和 macOS 安装器的一部分被安装,或者可以附带 --disable-gil 选项使用源代码来构建 CPython。 自由线程模式的执行允许在可用的 CPU 核心上并行地运行线程从而充分利用可用的处理能力。 虽然并非所有软件都能自动从中受益,但在设计时将线程纳入考虑的程序在多核心硬件上运行速度会更快。 自由线程模式是实验性的 并且处于不断改进的过程中:预计会出现一些程序错误并且在单线程场景下出现明显的性能损失。 可以选择使用环境变量 PYTHON_GIL 或命令行选项 -X gil=1 让 CPython 的自由线程构建版支持在运行时启用 GIL。 为了检查当前解释器是否支持自由线程,python -VV 和 sys.version 将包含 "experimental free-theading build" 字样。 可以使用新增的 sys._is_gil_enabled() 函数来检查正在运行的线程是否确实禁用了 GIL。 转载自: >https://www.cnblogs.com/lrzy/p/17964858 https://docs.python.org/zh-cn/dev/whatsnew/3.13.html