TOC

Python 版本历史

Python 3.10 前几天刚发布。
Python 3.11 据说性能可以提升 2 - 5 倍(2021/05/18, 关于 CPython 的 Shannon Plan),期待!
回顾以下 Python 的版本历史。

  • Python 0.9 - 1991/02 维基百科
  • Python 1.0 - 1994/02 (v1.0.1)
    • Python 1.1 - 1994/10
    • Python 1.2 - 1995/04
    • Python 1.3 - 1995/10
    • Python 1.4 - 1996/10
    • Python 1.5 - 1997/12
  • Python 2.0 - 2000/10
    • Python 2.1 - 2001/04
    • Python 2.2 - 2002/03
    • Python 2.3 - 2003/09 (v2.3.1)
    • Python 2.4 - 2004/11
    • Python 2.5 - 2006/09
    • Python 2.6 - 2008/10
    • Python 2.7 - 2010/07 这个时候 3.0,3.1 已经发布
  • Python 3.0 - 2008/12
    • Python 3.1 - 2009/06
    • Python 3.2 - 2011/02
    • Python 3.3 - 2012/09
    • Python 3.4 - 2014/03
    • Python 3.5 - 2015/09
    • Python 3.6 - 2016/12
    • Python 3.7 - 2018/06
    • Python 3.8 - 2019/10
    • Python 3.9 - 2020/10
    • Python 3.10 - 2021/10
    • Python 3.11 -
    • Python 3.12 -
    • Python 3.13 -
    • Python 3.14 -

Python 路线汇总

  • 类型系统内建化(3.5 → 3.12):从“动态语言 + typing插件” → “渐进式静态类型语言”
    • typing(3.5)
    • 泛型内建(3.9)
    • 新泛型语法(3.12)
  • 并发模型升级(3.4 → 3.14):从“单线程事件循环” → “多核并发模型重构”
    • asyncio(3.4)
    • async/await(3.5)
    • contextvars(3.7)
    • TaskGroup(3.11)
    • subinterpreters + no-GIL(3.13+)
  • 解释器性能工程(3.11 → 3.14):挑战“解释型性能天花板”
    • 自适应解释器(3.11)
    • JIT(3.13)
    • 无 GIL(3.13+)

各版本变更记录

  • 结合社区信息,Python 3.14 开发者应重点关注以下核心变更:

    • 语言语法:新增模板字符串(t-string)实现延迟求值;标注(Annotations)改为延迟求值,提升性能并简化前向引用。
    • 并发模型:标准库正式支持子解释器(concurrent.interpreters)及自由线程模式(无 GIL 构建),重构高并发编程范式。
    • 工具链:REPL 默认支持语法高亮,错误消息进一步优化。
  • Python 3.13 主要聚焦于交互体验、并发实验与类型系统的现代化升级:

    • 并发与性能:实验性支持无 GIL 自由线程模式(PEP 703)及 JIT 编译器(PEP 744)。
    • 类型系统:类型参数(TypeVar)支持默认值(PEP 696),新增 TypeIs 细化守卫。
    • 清理与语义:移除老旧“死电池”模块,明确 locals() 修改语义以提升调试器稳定性。
  • Python 3.12 主要围绕语法解放、类型系统现代化及底层并发实验进行了升级:

    • 语法与体验:f-string 从“字符串语法糖”升级为“正式语法结构”(支持多行、嵌套、反斜杠);错误提示引入“Did you mean”智能推荐。
    • 类型系统:引入泛型类/函数新语法(list[T])及 type 语句声明别名;新增 @override 装饰器。
    • 并发与底层:实验性支持子解释器独立 GIL(PEP 684);Python 代码可实现缓冲区协议(PEP 688)。
  • Python 3.11 的核心开发变动如下:

    • 性能飞跃:引入自适应解释器,平均提速 25–60%,无需改代码即可受益。
    • 异常重构:新增 ExceptionGroupexcept* 语法,支持批量处理异常;异常对象支持添加注释(add_note)。
    • 类型系统:引入 Self 类型、Required/NotRequired 标记及可变泛型(TypeVarTuple),强化静态类型支持。
    • 工具链:标准库内置 tomllib 解析 TOML;错误回溯精确到列级别,大幅提升调试效率。
    • 并发模型:引入 asyncio.TaskGroup(结构化并发),配合 ExceptionGroup 实现任务生命周期绑定与异常聚合处理
  • Python 3.10 的核心开发变动如下:

    • 结构化模式匹配:引入 match...case 语句(PEP 634),支持对数据结构进行深度解构与匹配,但语义复杂度较高,社区接受度存在分歧(并非 switch 替代品)。
    • 类型注解简化:支持 X | Y 联合类型语法(PEP 604)替代 Union[X, Y],并引入 TypeAlias 明确声明类型别名。
    • 错误提示增强:语法错误信息更精确,明确提示缺失的括号、引号等,大幅提升调试效率。
    • 上下文管理器with 语句支持括号内多行换行,改善长资源列表的可读性。
  • Python 3.9 的核心开发变动如下:

    • 语法与类型:字典支持合并运算符 | / |=;内置类型泛型化(PEP 585),类型注解可直接用 list[str] 替代 typing.List
    • 工具链升级:引入 removeprefix() / removesuffix() 字符串方法;标准库新增 zoneinfo 模块处理时区。
    • 底层重构:解释器启用 PEG 解析器,为后续语法特性(如 3.10 的 match-case)铺路。
  • Python 3.8 的核心开发变动如下:

    • 语法革新:引入海象运算符 :=,支持在表达式中赋值;函数参数支持 / 语法定义仅限位置参数
    • 调试增强:f-string 支持 = 自文档化输出(如 f'{x=}'),大幅简化调试流程。
    • 类型系统typing 模块新增 TypedDictLiteralFinal 等工具,强化静态类型检查能力。
    • asyncio debug improvements
  • Python 3.7 的核心开发变动如下:

    • 数据类与类型:引入 @dataclass 自动生成模板代码;支持延迟求值from __future__ import annotations)解决类型前向引用问题。
    • 异步与调试async/await 正式成为保留关键字;asyncio API 基本稳定,进入可规模化生产阶段;新增 breakpoint() 内置函数快速进入调试器。
    • 规范与工具字典插入顺序正式成为语言规范;新增 contextvars 模块支持异步上下文变量。
  • Python 3.6 的核心开发变动如下:

    • 语法革命:引入 f-stringf"{var}")彻底改变字符串格式化方式;支持变量类型注解(x: int)为静态类型检查奠基。
    • 异步生态:支持异步生成器async for)与异步推导式,完善了 asyncio 生态。
    • 性能与规范:字典类型重构,内存占用减少约 20–25%,且保留插入顺序成为正式语言规范。
  • Python 3.5 的核心开发变动如下:

    • 异步革命:引入 async/await 关键字,原生支持协程,奠定了现代 Python 异步编程的基础。
    • 类型系统:新增 typing 模块,正式引入类型注解(Type Hints),开启了 Python 静态类型检查的新纪元。
    • 语法与运算:新增矩阵乘法运算符 @;支持 */** 在函数调用中的扩展解包(PEP 448)。
  • Python 3.4 的核心开发变动如下:

    • 异步与工具链:引入 asyncio 模块奠定异步 I/O 基础;内置 ensurepipenum 模块,完善标准库工具链。
    • 路径与类型:新增 pathlib 模块提供面向对象路径操作;functools 增加单分派泛型函数 (@singledispatch)。
    • 诊断与统计:新增 tracemalloc 模块追踪内存分配;新增 statistics 模块提供基础统计计算功能。
  • Python 3.3 的核心开发变动如下:

    • 生成器与包管理:引入 yield from 语法支持生成器委托;内置 venv 模块提供原生虚拟环境支持。
    • 导入系统:支持隐式命名空间包(无需 __init__.py);基于 importlib 重写导入机制。
    • 工具与性能:新增 unittest.mock 模块用于测试;引入字典键共享优化内存占用。
  • Python 3.2 的核心开发变动如下:

    • 并发与工具:新增 concurrent.futures 模块提供线程/进程池高级接口;新增 argparse 模块作为标准命令行解析工具。
    • 缓存与装饰器functools 引入 @lru_cache 装饰器实现函数结果缓存;contextlib 提供 @contextmanager 简化上下文管理器编写。
    • 系统与性能:定义稳定 ABI(PEP 384)改善 C 扩展兼容性;优化 GIL 实现与集合成员测试性能。
  • Python 3.1 的核心开发变动如下:

    • 数据结构:引入 collections.OrderedDict(有序字典)与 collections.Counter(计数器),极大丰富了标准库的数据处理能力。
    • 格式化增强str.format() 支持自动字段编号"{} {}")与千位分隔符{:,}),显著提升字符串与数字格式化便利性。
    • 语法与工具with 语句支持多上下文管理器with a, b:);新增 importlib 模块提供导入系统的纯 Python 实现。
  • Python 3.0 是首个不兼容 Python 2.x 的版本(Py3K),核心开发变动如下:

    • 语法与类型print语句变为函数print());str 统一为 Unicode,新增 bytes 类型处理二进制数据;整数除法 / 返回浮点数。
    • 内置函数range()map()filter()zip() 等改为返回迭代器而非列表;移除 xrange()reduce() 移至 functools
    • 语法清理:引入 nonlocal 关键字;异常捕获语法改为 except E as e:;移除经典类(old-style classes)和 <> 运算符。
如果你有魔法,你可以看到一个评论框~