Python 3.12新功能(1)

Bruce Jia(上海) 2024-08-23 15:05:03 阅读 71

Python 3.12正式发布已经很久了,我才将主要电脑的Python版本从3.11升级到最新。最近刚好工作没有那么紧张了,就来领略下这个最新版本中的新特性。

 

改善了错误消息

Python作为一门编程语言,简单易学容易上手,童叟无欺,深受广大码农的厚爱。其中有一点需要归功于它相对友好的出错消息。通常很容易从出错的提示信息知道代码哪里出了语法或逻辑错误。从Python 3.10开始,很多Python的错误消息,尤其是语法错误的提示,越来越精准有用了。现在很多出错的消息里边,不仅仅告诉你哪里出错了,Python甚至更进一步给出了修正问题的建议。

让我们来看几个例子吧。

第一个例子:使用了未导入的包

先来看Python 3.11中是什么情况。

>>> sys.version_info

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'sys' is not defined

再来对比一下Python 3.12是如何爱我们码农的。

>>> sys.version_info

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'sys' is not defined. Did you forget to import 'sys'?

感受到Python越来越优秀了吗?

第二个例子:包导入的语法

>>> import a.y.z from b.y.z

  File "<stdin>", line 1

    import a.y.z from b.y.z

    ^^^^^^^^^^^^^^^^^^^^^^^

SyntaxError: Did you mean to use 'from ... import ...' instead?

如果哪位同学,因为工作需要,频繁地在多种编程语言中切换的,对这个提示应该是非常喜欢滴。(我就常常会弄混import语法,不论是用Python, JAVA或者TS/JS)

第三个例子:导入包的拼写错误

对比一下Python 3.11和3.12.

>>> from collections import chainmap

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ImportError: cannot import name 'chainmap' from 'collections' (C:\Users\bruce\.pyenv\pyenv-win\versions\3.11.3\Lib\collections\__init__.py)

>>> from collections import chainmap

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ImportError: cannot import name 'chainmap' from 'collections' (C:\Users\bruce\AppData\Local\Programs\Python\Python312\Lib\collections\__init__.py). Did you mean: 'ChainMap'?

(时间有限,今天先码字到这里了。)后续再看其他的更多新特性,欢迎大家评论或私信交流,一起做更棒的开发者!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。