|
Python3.12正式发布已经很久了,我才将主要电脑的Python版本从3.11升级到最新。最近刚好工作没有那么紧张了,就来领略下这个最新版本中的新特性。 改善了错误消息Python作为一门编程语言,简单易学容易上手,童叟无欺,深受广大码农的厚爱。其中有一点需要归功于它相对友好的出错消息。通常很容易从出错的提示信息知道代码哪里出了语法或逻辑错误。从Python3.10开始,很多Python的错误消息,尤其是语法错误的提示,越来越精准有用了。现在很多出错的消息里边,不仅仅告诉你哪里出错了,Python甚至更进一步给出了修正问题的建议。让我们来看几个例子吧。第一个例子:使用了未导入的包先来看Python3.11中是什么情况。>>>sys.version_infoTraceback(mostrecentcalllast): File"",line1,inNameError:name'sys'isnotdefined再来对比一下Python3.12是如何爱我们码农的。>>>sys.version_infoTraceback(mostrecentcalllast): File"",line1,inNameError:name'sys'isnotdefined.Didyouforgettoimport'sys'?感受到Python越来越优秀了吗?第二个例子:包导入的语法>>>importa.y.zfromb.y.z File"",line1 importa.y.zfromb.y.z ^^^^^^^^^^^^^^^^^^^^^^^SyntaxErroridyoumeantouse'from...import...'instead?如果哪位同学,因为工作需要,频繁地在多种编程语言中切换的,对这个提示应该是非常喜欢滴。(我就常常会弄混import语法,不论是用Python,JAVA或者TS/JS)第三个例子:导入包的拼写错误对比一下Python3.11和3.12.>>>fromcollectionsimportchainmapTraceback(mostrecentcalllast): File"",line1,inImportError:cannotimportname'chainmap'from'collections'(C:\Users\bruce\.pyenv\pyenv-win\versions\3.11.3\Lib\collections\__init__.py)>>>fromcollectionsimportchainmapTraceback(mostrecentcalllast): File"",line1,inImportError:cannotimportname'chainmap'from'collections'(C:\Users\bruce\AppData\Local\Programs\Python\Python312\Lib\collections\__init__.py).Didyoumean:'ChainMap'?(时间有限,今天先码字到这里了。)后续再看其他的更多新特性,欢迎大家评论或私信交流,一起做更棒的开发者!
|
|