当前位置: 首页 > news >正文

Python 3.12新功能(1)

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'?

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

http://www.lryc.cn/news/411902.html

相关文章:

  • c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题
  • Android笔试面试题AI答之Activity常见考点
  • RK3568笔记四十九:W25Q64驱动开发(硬件SPI1)
  • TypeScript 定义不同的类型(详细示例)
  • [工具推荐]前端加解密之Burp插件Galaxy
  • 课题项目结题测试的作用
  • 中国工商银行长春分行开展“工驿幸福 健康财富”长辈客群康养活动
  • 机器学习 第十四章
  • 未来RPA财税的发展前景
  • 快速设置 terminator 透明背景
  • Redis+Unity 数据库搭建
  • WebTracing:如何使用一款SDK实现前端全链路监控
  • 【Story】编程迷航:从 “ 我怎么才学会 ? ” 到 “ 我怎么这么厉害 ! ”
  • 基于“日志审计应用”的 DNS 日志洞察实践
  • 大学按照学科类别、办学层次、教育性质分类有哪些?创龙教仪一文带您了解
  • 数据结构与算法 - 递归
  • python:plotly 网页交互式数据可视化工具
  • 聊一聊 webpack5性能优化有哪些?
  • 公布一批神马爬虫IP地址,真实采集数据
  • uni-app全局文件与常用API
  • 连接器表面缺陷检测方案
  • React项目动态设置index.html中的<title>标签内容
  • 大龄程序员转型攻略:拥抱人工智能,开启新征程
  • Jenkins保姆笔记(1)——基于Java8的Jenkins安装部署
  • 学习c语言第18天(字符串和内存函数)
  • 无心剑七绝《潘展乐神》
  • Linux C++ 开发1 - 搭建C++开发环境
  • 吴恩达老师机器学习-ex4
  • C语言-函数例题
  • 鸿蒙应用框架开发【多HAP】程序框架