Python 3.10 来了,居然有这新特性!

共 2069字,需浏览 5分钟

 ·

2021-10-18 01:24

大家好,我是一行

已经达到了而立之年的Python,最近发布了3.10版本

新版本添加了很多新的特性,其中最大的特性就莫过于还是安装新版本之后有些python包不支持还得回到原来版本🐶

不过话说回来,除了部分包不兼容以外,还是有很多好用的性能提升

其中最有帮助的就是就是报错更加智能化了

例如语法错误,很多年前作为小白的我遇到这个语法错误问题还跑过去问老师

毕竟百度搜索语法错误该怎么办,它回答不上来,最后老师给我指出来原因是少一个加一个括号,顿时无比尴尬

后来python性能优化给出了错误的位置在哪,但是有些程序即使给出了还是很难找出原因,所以这次升级,python就怕你不会改,将错误的原因也给标了出来

1错误提示

目前python里出现频率最高的错误有以下几种:

  • ':'缺少:SyntaxError: expected ':'

  • ','缺少:SyntaxError: invalid syntax. Perhaps you forgot a comma?

  • 字典缺失值:SyntaxError: ':' expected after dictionary key

  • try没有块except或finally块:

SyntaxError: expected 'except' or 'finally' block

  • 在比较中使用=代替==:

SyntaxError: cannot assign to attribute here. Maybe you meant '==' instead of '='?

这些日常常见的粗心错误,python直接给你提示并解释出来了,就差动手帮你改了

当然除此之外还有缩进错误、属性错误、名称错误都会有详细的提示,让你写的bug能够更加流畅

这个特性对于初学者来说还是非常nice的

2python

还有一个比较瞩目的新特性是添加了一个新的关键字:match

不像其他编程语言有switch,python之前一直没有,现在给加上了这个特性,而且还用match语句来代替它

match的通用语法如下,case从上到下将目标与语句中的每个模式进行比较,直到确认匹配为止

如果未确认完全匹配,则最后一种情况,通配符_(如果提供)将用作匹配情况。如果未确认完全匹配且不存在通配符大小写,则整个匹配块为空操作。

match subject:
    case :
        
    case :
        
    case :
        
    case _:
        

不像有些语言的switch只能匹配一种数据类型

而python3.10里的match作为super版的switch可以匹配文字、变量、类对象、位置参数,甚至还有嵌套模式、复杂模式和Guard

Guard就暂且翻译成守卫,就是在case后面可以加入一个if判断

如果守卫为假,match则继续尝试下一个案例块。请注意,值捕获发生在评估守卫之前:

match point:
    case Point(x, y) if x == y:
        print(f"The point is located on the diagonal Y=X at {x}.")
    case Point(x, y):
        print(f"Point is not on the diagonal.")

就是因为这样的新特性便出现了下面这样的神仙语句

如果不知道“软关键字”这个,肯定会提出疑问,关键字怎么能做变量呢?

这让我想起一个段子:

小明送给领导两个红包.

  • 领导:你这是什么意思
  • 小明:意思意思
  • 领导:“你这就不够意思了.”
  • 小明:“小意思,小意思.”
  • 领导:“你这人真有意思.”
  • 小明:“其实也没有别的意思.”
  • 领导:“那我就不好意思了.”
  • 小明:“是我不好意思.”

要求:分别解释每个“意思”的意思.

这里的意思就相当于python3.9推出的“软关键字”特性,不同的位置具有不同的意思,python也是通过不同位置来判断代码的具体意思

这已经非常的人性化了,就差跟我意思意思了~

3最后

那要不要升级最新版python呢?

一行的建议还是跟着你常用的包来确定,常用包支持python3.10就去升级,不支持就等等,也不差这一段时间

当然,python3.10还有很多非常有意思的更新内容,详细可以官网链接进行查看:

https://docs.python.org/3/whatsnew/3.10.html

我是一行,技术永不眠,我们下期见~


对了,一行用爬虫爬取了知乎里150000字的python学习攻略,并统计分析了这些年入百万的python大佬所推荐的Python书单,花了很长时间整理成电子书合集如下图所示,需要的可以添加一行微信好友「yihangpy」直接领取哦~






浏览 137
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报