本文档追溯了 Python 通过其主要版本和功能的发展历程,记录了 CPython 在语言、运行时和实现细节方面随时间的重大变化。有关字节码解释器和优化当前实现细节的具体信息,请参阅代码执行管道,有关内存管理演进的信息,请参阅对象系统与内存管理。
自 1991 年首次发布以来,Python 已取得了显著的进步。以下是突出关键功能和变化的主要版本时间线。
来源:Doc/whatsnew/3.13.rst1-201 Doc/whatsnew/3.12.rst1-60 Doc/whatsnew/3.11.rst1-50 Doc/whatsnew/3.14.rst1-50
从 Python 2.x 到 3.x 的过渡代表了 Python 历史上最重大的断裂。Python 3.0(发布于 2008 年 12 月)为了解决根本性的设计问题,故意不向后兼容。
此次过渡导致了 Python 2.x 和 3.x 双版本并存的漫长时期。Python 2.7(发布于 2010 年 7 月)成为最后一个 2.x 版本,支持期延长至 2020 年 1 月 1 日。
来源:Doc/whatsnew/2.7.rst1-50 Doc/whatsnew/2.6.rst1-20
让我们回顾一下 Python 3 开发的关键里程碑。
来源:Doc/whatsnew/3.13.rst50-120 Doc/whatsnew/3.12.rst55-150 Doc/whatsnew/3.11.rst52-150 Doc/whatsnew/3.14.rst58-120
Python 3.11 的主要改进包括:
except* 语法 (PEP 654)Python 3.12 的主要功能包括:
type 语句 (PEP 695)Python 3.13 的主要功能包括:
locals() 定义了可变语义 (PEP 667)Python 3.14 的即将推出的功能包括:
except 和 except* 表达式无需括号 (PEP 758)来源:Doc/whatsnew/3.14.rst67-400 Doc/whatsnew/3.13.rst97-350 Doc/whatsnew/3.12.rst90-320 Doc/whatsnew/3.11.rst110-350
稳定 ABI(应用程序二进制接口)于 Python 3.2 (PEP 384) 引入,旨在为扩展模块在不同 Python 版本之间提供二进制兼容性。
稳定 ABI 包括:
PyLong_Type、PyBool_Type 等)PyObject_GetAttr、PyArg_Parse 等)Py_INCREF、Py_DECREF 等)PyModule_Create 等)针对稳定 ABI 编译的扩展可以在多个 Python 版本之间工作而无需重新编译,从而支持 Python 生态系统的增长。
来源:Misc/stable_abi.toml1-100 Doc/data/stable_abi.dat1-100 PC/python3dll.c1-50
CPython 解释器执行模型在最近几个版本中得到了显著的演进。
来源:Doc/whatsnew/3.13.rst300-420 Doc/whatsnew/3.14.rst350-398
Python 的对象系统在保持兼容性的同时得到了持续的改进。
PyObject 结构 (PEP 623)在 Python 3.13 中,核心对象结构已扩展以支持自由线程。
来源: Include/object.h109-164 Doc/whatsnew/3.13.rst300-350
标准库得到了显著的演进
Python 3.11 通过 PEP 594 弃用了许多遗留模块,这些模块已在 Python 3.13 中被移除
aifc, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlibdistutils(已被 setuptools 和现代打包工具取代)pathlib、enum 和 asynciopathlibdbm.sqlite3 添加为默认 DBM 后端来源: Doc/whatsnew/3.13.rst93-101 Doc/whatsnew/3.12.rst112-122 Doc/whatsnew/3.11.rst96-98
Python 一直在不断改进其安全状况
tarfile 增加了安全的解压功能,以防止目录遍历攻击来源: Doc/whatsnew/3.13.rst145-148 Doc/whatsnew/3.12.rst126-133
Python 一直在持续提升其开发者体验
来源: Doc/whatsnew/3.13.rst247-284 Doc/whatsnew/3.12.rst427-458 Doc/whatsnew/3.11.rst115-130
Python 的发布节奏和支持周期已经过时
来源: Doc/whatsnew/3.13.rst197-205
根据当前的开发和讨论,Python 的未来可能包括