Python 3.12发布,包含了许多新特性和改进。其中包括错误消息的改善、性能提升、不可变对象的引入、全局解释器锁的变化、字符串嵌套等。此外,还有泛型类和函数的新语法,以及路径翻转和监视调用的功能。一些模块被删除,推荐使用新的方法名。总体来说,Python 3.12带来了许多改进和实用的特性,使得编码体验更好。

Python 3.12.0 是 Python 编程语言的最新主要版本,包含许多新功能和优化。下面是一些主要的新特性和变化:
新特性
- 更灵活的 f-string 解析:允许许多之前不允许的事情(PEP 701)。
- Python 代码中的缓冲协议支持(PEP 688)。
- 新的调试/分析 API(PEP 669)。
- 支持具有单独全局解释器锁的隔离子解释器(PEP 684)。
- 更多改进的错误消息:现在由拼写错误可能引起的更多异常会向用户提出建议。
- 支持 Linux perf 分析器在追踪中报告 Python 函数名。
- 许多大的和小的性能改进(例如 PEP 709 和对 BOLT 二进制优化器的支持),提供了估计的 5% 的整体性能改进。
类型注释
- 泛型类的新类型注释语法(PEP 695)。
- 方法的新覆盖装饰器(PEP 698)。
废弃
- 根据 PEP 623,删除了 C 实现的 unicode 对象的已弃用的 wstr 和 wstr_length 成员。
- 在 unittest 模块中,删除了一些长时间已弃用的方法和类(自 Python 3.1 或 3.2 以来已弃用)。
- 已删除已弃用的 smtpd 和 distutils 模块(请参阅 PEP 594 和 PEP 632)。setuptools 包继续提供 distutils 模块。
- 删除了一些其他旧的、损坏的和已弃用的函数、类和方法。
- 在字符串中无效的反斜杠转义序列现在用 SyntaxWarning 警告,而不是 DeprecationWarning,使它们更加可见。(它们将在将来成为语法错误。)
- 整数的内部表示已更改,为性能增强做准备。(这不应影响大多数用户,因为它是一个内部细节,但它可能会导致 Cython 生成的代码出现问题。)