本文总结了 Python 3.5 到 3.14 各版本的主要语言特性和改进。
Python 3.5 (2015年9月)
主要特性
- 类型提示 (Type Hints)
- def greeting(name: str) -> str:
- return 'Hello ' + name
复制代码 - PEP 492 - 异步 IO 支持
- async 和 await 关键字
- 异步生成器和协程
- PEP 448 - 扩展的可迭代解包
- a, *b, c = [1, 2, 3, 4, 5] # a=1, b=[2,3,4], c=5
复制代码 - 新增标准库模块
- typing: 提供类型提示支持
- asyncio: 异步 IO 框架
- 其他改进
- @ 运算符用于矩阵乘法
- os.scandir() 用于高效目录遍历
Python 3.6 (2016年12月)
主要特性
- 格式化字符串字面值 (f-strings)
- name = "World"
- print(f"Hello, {name}!")
复制代码 - PEP 526 - 变量注解
- x: int = 10
- y: List[str] = []
复制代码 - PEP 515 - 数字字面值的下划线分隔符
- large_number = 1_000_000_000
复制代码 - 异步生成器和异步推导式
- async def async_gen():
- for i in range(5):
- yield i
- result = [i async for i in async_gen()]
复制代码 - 新的标准库模块
- 语法改进
- 字典可以保持插入顺序
- 变量注解允许在函数注释中使用 ->
Python 3.7 (2018年6月)
主要特性
- 数据类 (Data Classes)
- from dataclasses import dataclass
- @dataclass
- class Point:
- x: float
- y: float
复制代码 - PEP 563 - 延迟评估的类型注解
- 通过 from __future__ import annotations 实现
- 类型注解在运行时不会被求值
- 上下文变量 (Context Variables)
- asyncio 改进
- asyncio.run() 函数简化异步程序运行
- asyncio.create_task() 创建任务
- 语法改进
- 更简洁的异常链语法:raise new_exc from old_exc
Python 3.8 (2019年10月)
主要特性
<ol>赋值表达式 (海象运算符 :=)
[code]if (n := len(a)) > 10: print(f"List is too long ({n} elements, expected |