首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3.10发布,这个特性爱了

最近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的一个分支。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211014A01R5000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券