Python各个版本的特点

简介

  • Python 是一门解释型、高级、通用、动态类型编程语言,由荷兰人 吉多・范罗苏姆(Guido van Rossum) 在 1991 年正式发布;名字取自喜剧《蒙提・派森的飞行马戏团》,不是蟒蛇。
  • 设计核心理念:可读性优先、简洁优雅(“人生苦短,我用 Python”)。

各版本特点

Python 3.7(2018)【经典稳定基线】

  • ✅ @dataclass 数据类(PEP557),大幅简化数据载体类写法Python
  • ✅ 内置 breakpoint(),替代 import pdb;pdb.set_trace()
  • ✅ contextvars 上下文变量,异步场景下替代部分 thread-local
  • ✅ dict 保留插入顺序正式写入语言规范(之前只是实现特性)
  • ✅ async / await 成为保留关键字;类型注解延迟求值(PEP563)
  • ✅ Windows 默认控制台、文件系统编码改为 UTF-8,减少乱码

适合:老框架、很多第三方库最低支持版本,生产大量存量项目

Python 3.8(2019)【海象运算符出圈】

  • ✅ 海象运算符 :=,表达式内赋值(PEP572)
  • ✅ 仅位置参数 /:def func(a, b, /, c),a,b 只能位置传参
  • ✅ f-string 调试语法:f"{var=}" 直接打印变量名 + 值
  • ✅ math.prod()、pow 支持三参数更友好;asyncio 大量改进

适合:语法更顺手,很多新项目最低兼容版本

Python 3.9(2020)【字典合并 + 原生泛型】

  • ✅ 字典合并运算符:d1 | d2 合并字典、d1 |= d2 原地更新(PEP584)
  • ✅ 原生容器直接做类型注解:list[int],不再需要 from typing import List(PEP585)
  • ✅ 字符串新增 str.removeprefix() / str.removesuffix()
  • ✅ 解释器切换为 PEG 解析器(淘汰老 LL (1),为 match 语法铺路)
  • ✅ Annotated 灵活注解(PEP593)

适合:类型提示体验大幅提升,现代项目常用

Python 3.10(2021)【模式匹配大版本】

  • ✅ 结构化模式匹配 match /case(PEP634,Python 版 switch)
  • ✅ 联合类型简写:int | str,替代 Union[int, str]
  • ✅ zip 支持 strict=True,长度不一致直接抛异常,避免静默 bug
  • ✅ 错误提示优化,括号支持多行上下文管理器
  • ⚠️ distutils 标记弃用(后续版本移除)

适合:业务逻辑分支多、状态机、解析类代码

Python 3.11(2022)【性能暴涨、Self 类型、tomllib】⭐重点推荐

  • ✅ 整体提速 60% 左右(CPython 核心字节码优化),近十年最大性能提升
  • ✅ Self 类型(PEP673),类方法返回自身类型不用写复杂前向引用
  • ✅ tomllib 内置,原生解析 TOML 配置文件
  • ✅ except* 异常组 ExceptionGroup,并发多异常收集(PEP654)
  • ✅ Traceback 精准定位表达式,报错箭头指向出错子表达式,调试体验质变

适合:现在新项目首选稳定版之一,兼顾性能和生态兼容性

Python 3.12(2023)【f-string 解禁、类型参数语法】

  • ✅ f-string 语法放开限制:内部可以同引号、多行、写注释(PEP701)
  • ✅ 泛型类 / 函数简化语法:class A[T]:,不用 TypeVar 样板代码(PEP695)
  • ✅ 更清晰报错信息;asyncio、pathlib 增强
  • ✅ 弃用旧的 setuptools 相关打包逻辑,引导到 pyproject.toml

适合:喜欢简洁语法、类型驱动开发,生态已经比较成熟

Python 3.13(2024)【自由线程 + 实验 JIT,里程碑】

  • ✅ 实验 Free-Threaded 版本(PEP703):关闭 GIL,多线程真正并行(Windows/macOS 提供安装包,生产慎用)
  • ✅ 实验性 JIT 编译器(PEP744),长期性能路线
  • ✅ 全新彩色 REPL,多行编辑、彩色回溯,交互式体验升级
  • ✅ locals() 语义标准化;移除一大批 PEP594 废弃老模块(cgi、nntplib 等)

适合:技术调研、多线程计算场景测试;不建议直接上生产

Python 3.14(2025)【注解默认延迟求值、模板字符串】

  • ✅ PEP649:类型注解默认延迟求值,不再需要 from __future__ import annotations,前向引用不再需要字符串包裹
  • ✅ 模板字符串字面量 t"xxx {var}"(PEP750),和 f-string 不同,返回模板对象,适合安全渲染(防注入)
  • ✅ 标准库增加子解释器支持、compression.zstd 内置 Zstd 压缩
  • ✅ REPL 语法高亮、asyncio 自省能力增强

适合:大型类型注解多的项目,框架开发

Python 3.15(2026)【UTF-8 默认编码、frozendict、惰性导入】

  • ✅ PEP686:默认源码 / IO 编码统一 UTF-8,彻底终结 Windows GBK 编码坑
  • ✅ 内置 frozendict 不可变字典、sentinel 哨兵单例类型
  • ✅ 显式惰性导入(PEP810),加快脚本启动速度
  • ✅ 推导式支持解包;Tachyon 高频采样性能分析器
  • ✅ 自由线程版稳定 ABI,方便 C 扩展适配无 GIL 模式

适合:追求跨平台编码一致性、工具脚本、启动敏感 CLI 程序

Python 3.16(开发预览版,尚未正式发布)

  • ✅ iter() / aiter() 新增 stop_exception 参数,遇到指定异常停止迭代
  • ✅ memoryview 多维数组转一维支持 Fortran 序(适合数值库对接)
  • ✅ frame 对象支持弱引用,方便调试器、观测工具
  • ✅ 持续打磨 JIT、自由线程生态;继续清理老旧弃用 API

适合:只适合尝鲜、跟进新特性,严禁生产使用

快速选型参考

  1. 老项目维护、第三方库很老 → 3.7 / 3.8
  2. 稳定生产、追求性能 + 生态平衡(最推荐) → 3.11
  3. 喜欢新语法、类型开发、新项目 → 3.12
  4. 研究多线程并行、无 GIL、性能实验 → 3.13 + free-threaded
  5. 技术预览、尝新 → 3.14/3.15;3.16 仅预览

Web 框架

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
Django ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Flask ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
FastAPI ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Tornado ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Sanic △ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Starlette ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?

数据科学与机器学习

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
NumPy ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Pandas ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
SciPy ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Matplotlib ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Scikit-learn ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
PyTorch △ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
TensorFlow △ ✓ ✓ ✓ ✓ ✓ △ △ ? ?

ORM 与数据库

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
SQLAlchemy ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Django ORM ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Peewee ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Tortoise ORM ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?

异步与 HTTP

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
Requests ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?
httpx ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
aiohttp ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
urllib3 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?

测试与工具

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
pytest ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Pydantic ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Celery ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Gunicorn ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Uvicorn ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
Black ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
mypy ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?

实用工具

库 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16
Pillow ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
PyYAML ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?
cryptography ✓ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
boto3 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?
redis-py ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?
Click ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ? ?
Rich ✗ ✓ ✓ ✓ ✓ ✓ ✓ △ ? ?
本文结束 感谢您的阅读
正在加载今日诗词....