刚刚,Python3.10 正式发布了!终于增加了这个功能….
你好,我是 zhenguo
通过官网看到,Python 3.10 刚刚正式发布了!
我说两个新增的很香的功能,一个关于语法,另一个关于标注库里的函数。
1 match和case 语法
熟悉 C++ 的程序员对于switch和case不会陌生,但是对于Python 3.10以前,很遗憾,Python一直没有类似的语法,不过自从3.10开始Python终于有类似语法了!是 match和case,举例如下:
defhttp_error(status):
match status:
case 400:
return"Bad request"
case 401 | 403 | 404:
return"Not allowed"
case 404:
return"Not found"
case 418:
return"I'm a teapot"
case _:
return"Something's wrong with the Internet"
你看,与C++的switch和case用法是完全一样的!
2 更严谨的 zip
zip打包多个可迭代对象,配合for后接下来的操作以元组为基本单位,但是有一个有些致命的隐含问题,如下两个列表a,b 长度不一致,zip后丢失了a的元素 3:
In [43]: a=[1,2,3]
In [44]: b=['a','b']
In [45]: for i in zip(a,b):
...: print(i)
...:
(1, 'a')
(2, 'b')
为了解决这个问题,zip添加了一个布尔类型的参数 strict,这个变化也就是:
3.10以前zip的原型:
zip(*iterables)
strict
,默认为Falsezip(*iterables, strict=False)
只有当其为True时,打包的可迭代对象长度不一致时会抛异常;当为False时,与之前版本的zip完全相同,因此zip是完全向后兼容的。
以上就是2个比较有用的更新。
其他的一些变化还包括:
新的类型标注特性 重要的弃用、移除或限制,如PEP 632,弃用 distutils 模块。 新的特性:带圆括号的上下文管理器 更清楚的错误消息
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。