以下是 Python 从 3.5 到最新版 3.13 的核心特性演进,按版本分类梳理关键更新及意义:
🐍 一、Python 3.5(2015)
async/await
异步编程- 语法级协程支持,替代
yield from
,简化异步代码 - 示例:
async def fetch_data(): await asyncio.sleep(1) return "data"
- 语法级协程支持,替代
- 类型注解(Type Hints)
- 引入
typing
模块,支持变量、函数参数和返回值的类型标注 - 示例:
def greet(name: str) -> str: ...
- 引入
- 矩阵乘法运算符
@
- 专为数值计算设计,优化科学计算代码
- 示例:
result = matrix_a @ matrix_b
- 解包操作泛化
- 支持
*
解包列表、**
解包字典到函数参数 - 示例:
fn(**dict1, **dict2)
- 支持
🚀 二、Python 3.6(2016)
- f-string 格式化字符串
- 内嵌表达式:
f"Value: {x:.2f}"
- 内嵌表达式:
- 变量类型注解语法
- 直接声明变量类型:
primes: List[int] = []
- 直接声明变量类型:
- 数字下划线分隔
- 增强可读性:
1_000_000
- 增强可读性:
- 异步生成器与推导式
- 支持
async for
和异步推导式 - 示例:
data = [i async for i in async_iterator]
- 支持
- 路径协议(
os.PathLike
)- 统一路径处理接口,兼容
pathlib
- 统一路径处理接口,兼容
⚙️ 三、Python 3.7(2018)
- 数据类(
@dataclass
)- 自动生成
__init__
、__repr__
等方法,减少样板代码
- 自动生成
breakpoint()
内置函数- 快速进入调试器(如
pdb
)
- 快速进入调试器(如
- 字典保持插入顺序
- 正式成为语言规范
- 纳秒级时间函数
time.time_ns()
等高精度计时支持
🐪 四、Python 3.8(2019)
- 海象运算符(
:=
)- 表达式内赋值:
if (n := len(data)) > 10: ...
- 表达式内赋值:
- 位置参数标记(
/
)- 强制参数位置:
def f(a, b, /, c): ...
(a
、b
仅限位置传参)
- 强制参数位置:
f-string
调试支持- 快速打印变量:
print(f"{user_id=}")
→ 输出user_id=123
- 快速打印变量:
🧪 五、Python 3.9(2020)
- 字典合并运算符
dict_a | dict_b
替代{**a, **b}
- 类型注解泛化
- 原生支持
list[str]
替代List[str]
- 原生支持
- 字符串去前缀/后缀
"data.txt".removesuffix(".txt")
→"data"
⚡ 六、Python 3.10(2021)
- 模式匹配(
match-case
)- 类
switch-case
语法,支持复杂结构匹配 - 示例:
match data: case {"type": "login", "user": user}: print(f"User {user} logged in")
- 类
- 联合类型操作符
|
- 简化类型注解:
str | int
替代Union[str, int]
- 简化类型注解:
- 错误消息优化
- 更清晰的语法错误提示
🔄 七、Python 3.11(2022)
- 速度提升 25%
- 解释器优化(Faster CPython 项目)
- 异常回溯增强
- 错误位置高亮显示
T
泛型支持上下文管理器with
语句支持泛型类型
🧠 八、Python 3.12(2023)
- 类型系统增强
- 泛型别名(
type List[T] = list[T]
)
- 泛型别名(
f-string
表达式内注释f"Result: {x:.2f # 保留两位小数}"
- 子解释器支持(实验性)
- 隔离运行环境,提升并行安全性
🚨 九、Python 3.13(2024)
- 自由线程(无 GIL)
- 实验性支持多线程并行,提升 CPU 密集型任务性能
- 启用方式:
python3.13t
- JIT 编译器(实验性)
- 编译热点代码为机器码,加速训练/推理循环
- 启用:编译时加
--enable-experimental-jit
- 交互式 REPL 升级
- 多行编辑、彩色高亮、历史记录保存
- 类型系统强化
typing.ReadOnly
(防篡改字典字段)TypeVar
默认值(泛型简化)
📊 总结:版本特性演进对比
版本 | 核心特性 | 适用场景 |
---|---|---|
3.5 | async/await 、类型注解、矩阵乘法 | 异步网络编程、科学计算 |
3.6 | f-string、异步生成器、路径协议 | 数据清洗、文件操作 |
3.7 | 数据类、字典有序化、纳秒计时 | API 开发、高频计时任务 |
3.8 | 海象运算符、位置参数标记 | 条件逻辑简化、API 设计 |
3.9 | 字典合并、类型泛化 | 配置合并、类型安全项目 |
3.10 | 模式匹配、联合类型操作符 | 状态机、复杂数据处理 |
3.11+ | 性能提升、错误回溯优化 | 高性能应用、调试体验升级 |
3.13 | 自由线程(无 GIL)、JIT 编译器、类型增强 | AI/ML 训练、高并发系统 |
💡 建议:
- 新项目推荐使用 Python 3.12+,平衡特性与稳定性;
- AI/ML 领域关注 Python 3.13 的自由线程与 JIT,性能潜力显著;
- 升级前用
mypy
检查类型兼容性,利用uv
管理依赖。