py+Python Atlas版本特性图谱
官方文档 ↗
正式发布系列3.12.15

Python 3.12

类型系统与语言表达再进一步

泛型参数语法与 f-string 改进减少样板代码,也带来新的解释器能力。

查看发布说明 ↗
THE HIGHLIGHTS

这一版,值得关注 06

01类型PEP 695 ↗

类型参数与 type 语句

泛型函数、类和类型别名可以直接声明类型参数。

怎么用减少 TypeVar 样板,让类型信息与业务定义放在一起。

Python 3.12
type Pair[T] = tuple[T, T]

def first[T](items: list[T]) -> T:
    return items[0]
02语法PEP 701 ↗

更自由的 f-string

f-string 表达式允许复用引号、使用多行表达式及更多过去受限制的写法。

怎么用复杂字符串插值更自然,仍应优先保持可读性。

Python 3.12
person = {"name": "Ada"}
print(f"Hello, {person["name"]}")
03性能PEP 669 ↗

低开销监测 API

sys.monitoring 为调试器、分析器等工具提供执行事件监测接口。

怎么用面向开发工具作者,按需订阅事件。

04并发PEP 684 ↗

每个解释器独立的 GIL

支持为子解释器配置独立 GIL,主要通过 C API 使用。

怎么用它不会让普通 threading 代码自动实现并行;需要支持该模式的扩展或嵌入程序。

05标准库

itertools.batched

将可迭代对象按指定大小分批,末尾可以是较短的一组。

怎么用批量处理数据,避免手写索引切片。

Python 3.12
from itertools import batched

print(list(batched(range(7), 3)))
# [(0, 1, 2), (3, 4, 5), (6,)]
06兼容性PEP 632 ↗

移除 distutils

distutils 已从标准库移除;依赖它的构建工具需要迁移到维护中的替代方案。

怎么用升级前检查打包工具和间接依赖。

FROM THE SOURCE

官方完整变更目录 82

What’s New ↗

自动同步官方目录,涵盖语言、标准库、弃用及迁移变化。标题保留官方原文;中文解读精选于上方。

展开 Python 3.12 的全部变更 +