看完Python310的新特性,我决定

北京中科医院几级 https://jbk.familydoctor.com.cn/bjbdfyy_js/

Python3.10在年的10月3号发布,目前已经过去1个月了,关于它的新特性相信大家已经有所耳闻,不过我决定仍然不更新,目前我在用的版本是Python3.8,没有任何不爽。下面说一说我不更新的理由。

第一、相关的库可能还未跟进

如果你更新到了最新版本,已有的代码能否在不修改的情况下仍然可以正常运行?是首先要考虑的问题。

Python的第三方库都是基于开源志愿者的劳动,他们免费做着非常有价值的工作,而且适配新的Python版本都需要时间。此外,由于升级涉及许多不同的群体,协调和发布需要更多时间。

第二、很多新特性没使用价值

盘点一下Python3.10的那些没什么用的新特性(个人观点,可以留言来喷):

1、with可以加括号了

比如:

with(CtxManager1()asexample1,CtxManager2()asexample2,CtxManager3()asexample3,):...

这一点,我基本用不到,也不清楚什么样的情况需要这样写。要是有多个上下文,我就串着多写几个就是了,要是example1和example2有关系,我可以嵌套:

withCtxManager1()asexample1:withCtxManager2()asexample2:......

这样写不是层次更清晰吗?

2、matchcase就是花花肠子

Python3.10新增了match和case软关键字。什么是软关键字?就是虽然是关键字,但是可以作为变量名,虽然如此,你肯定也不愿意让match成为你的变量名了,因为这样也是不会报错的:

matchmatch:#后一个match是变量名称casecase:action

3.10的matchcase的语法如下:

matchsubject:casepattern_1:action_1casepattern_2:action_2casepattern_3:action_3case_:action_wildcard

它的用法可多了,有些我都快看不懂了。比如先来个简单的:

defmatch_errno(errno):matcherrno:case0:passcase1:passcase42:print("42!")case_:print("wildcard")

这里有个_表示谁也不匹配的情况,相当于一个默认值,但是_本来是用来表示一个后续不再使用的变量的,假如这样调用,虽然解释的通,总感觉怪怪的:

_=42match_errno(_)42!

再来个复杂一点的:

def


转载请注明:http://www.aierlanlan.com/rzgz/4577.html