专栏名称: 新语数据故事汇
《新语数据故事汇,数说新语》科普数据科学、讲述数据故事,深层次挖掘数据价值。
目录
相关文章推荐
51好读  ›  专栏  ›  新语数据故事汇

Python 3.12 新特性盘点:从错误消息到性能优化

新语数据故事汇  · 公众号  ·  · 2024-08-06 13:47

正文

Python 3.12 引入了一系列显著的特性和改进,进一步提升了开发者的体验和语言的性能。该版本在错误消息方面做了重要改进,提供了更详细且富有指导性的提示,帮助开发者更快定位问题。格式化字符串(f-strings)的功能也得到了增强,允许更强大的字符串格式化。

在性能优化方面,Python 3.12 继续推进 faster-cpython 项目,通过加速和专门化字节码执行,显著提升了代码的运行速度。该版本还改进了列表推导和其他推导操作的执行效率,使得数据处理更加高效。

此外,Python 3.12 支持 Linux perf Profiler,为性能分析提供了更多工具。每个子解释器现在配备独立的 GIL(全局解释器锁),提高了并发性能。新增了不可变对象和用于显式继承的覆盖装饰器,并引入了 itertools.batched() 方法以便将可迭代对象中的项目分组,以及改进了 Path.walk() 方法以列出文件和子目录。这些改进进一步增强了 Python 作为开发语言的功能性和灵活性。

改进的错误消息

在 Python 3.10 中,许多错误消息,尤其是语法错误消息,变得更加详细和准确。同样,Python 3.11 在追踪回溯信息中增加了更多内容,使得定位出错代码变得更加方便。

最新版本的 Python 3.12 继续改善开发者体验,提供了更好的错误消息。特别是一些常见的错误消息现在附带了有用的建议。

当您在没有先导入 math 的情况下使用它时,您会得到一个传统的 NameError。此外,解析器会帮助提醒您在访问 math 之前需要导入它。

关于提示导入模块的提醒仅适用于标准库模块。对于这些错误消息,Python 3.12 不会跟踪安装的第三方包。

目前由于ipython有字节错误处理机制,提示导入包在ipython 里面没有实现。

可以使用 from-import 语句从模块中导入特定名称。如果您不小心将关键字的顺序颠倒了,现在会得到一个友好的提示,指导您使用正确的语法:

看看如果您从 math 模块导入 py 而不是 pi 会发生什么:

更强大的 F-string

格式化字符串,简称 f-string,是在 PEP 498 和 Python 3.6 中引入的。通过 f-string,Python 增加了字符串格式化功能。您可以通过前导的 f 来识别 f-string,如以下示例:

关于F-String 在python 3.12 新特征,可以参考: 《一文带您了解F-string:解锁Python3.12下F-string的新特性》

更快的 Python:更多专门化和内联列表推导







请到「今天看啥」查看全文