最近Python社区有两件大事
Python登顶
在最新一期的TIOBE榜单中,Python登顶TIOBE,排名第一,结束了Java和C多年的霸榜。
Python作为一门动态脚本语言可以说相当成熟,深受开发者青睐。无论是易用性、还是社区提供的第三方库的丰富程度上,只能让其它语言望尘莫及。尽管总有一些不同的声音拿Python运行慢来说事,不过真正在用Python的又有多少人care呢。
3.10正式版发布
Python在几天前发布了正式版3.10,虽然你不一定会马上应用到生产环境,不过还是建议有条件的可以升级体验以下,没条件直接看我这篇文章就可以了,我列了几个开发者可能比较感兴趣的特性,看看哪个是你最期待的特性。
1
更友好的错误提示
比如这段代码如果你不小心漏掉一个右花括号,运行代码时,在之前的版本中直接提示语法错误:
不仔细检查代码你还真的没法一眼看出来到底哪里语法错误。而在python3.10中,提示变得非常友好而且具体, 直接告诉你 "{"没有关闭,这样定位错误就很快了。
类似地,还有推导式中如果忘记加圆括号时,之前一言不合直接提示语法错误
而现在会告诉你,是不是忘记加圆括号了。
嗯,这才人性化。
2
match ... case 终于来了
match ... case 语法是我比较期待的功能,它不是什么多高级的功能,类似于其它语言中的 switch ... case 语法,在多条件判断时比用 if ... elif 代码更简洁。很难想象,这个语法现在才加进来,当然, 一开始Python之父是不愿意加这个语法特性的,好在这个语法最终还是回归了,而且换了个名字。
我在想,干嘛和自己过不去,统一都叫 switch ... case 不好吗?也许这就是Python让人着迷的地方吧。
来看个例子
这是用3.10的 match case 语法
case _ 类似于其它语言中的 default ,当其他条件都不符合就执行这行。
用普通的if ... else 语法来写
3
支持括号的上下文管理器
在之前的老版本中,多个上下文管理器必须放在一行或者用转义符“\”换行
在3.10中,我们可以用括号将多个管理器放在多行,这样代码看起来整洁一些。
4
新的类型联合操作符
在之前版本中,对于函数参数如果希望类型支持多种,例如同时支持int和float,需要用Union:
现在有个新的语法糖“|”,叫联合操作符,可以让代码更简洁
该操作符在函数 isinstance()和 issubclass() 也可以支持
最后
当开发者问到Python是否还会有Python4.0的时候,Python之父直言不要对 Python 4.0 抱有希望。假如真的哪天发布了Python4.0,也不会重走2.x过度到3.0的老路。同时,我们也别指望Python的GIL能够去掉,不是没尝试过,而是去掉GIL之后更慢了。如果你的项目对性能非常敏感,不妨试试pypy,python的一个分支。
领取专属 10元无门槛券
私享最新 技术干货