python3.10新特性是什么

发布时间:2022-01-29 15:23:37 作者:zzz
来源:亿速云 阅读:109

本文小编为大家详细介绍“python3.10新特性是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“python3.10新特性是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

更友好的报错提示

很多编程语言都有一套自己的报错机制,就小编的学习经历而言,python的报错提示是比较友好的。小编学习的第一门语言是C语言,当时使用的是一代经典IDE——visual C++6.0,它在编译的时候如果代码有错误会进行报错,小编觉得vc6.0的报错是十分详细的,我们只需要根据报错的提示信息进行修改,就能把代码改好,VC6.0的优点就在于此:他的代码提示很详细。然而因为它是C语言,所以本身代码会比较难懂,这点不能赖它的报错提示,只能说C语言的报错提示像一把高手才能驾驭的宝剑,对于初学C语言,对C语言语法不够熟悉的小伙伴不太友好。

小编学习的第二门语言是java,java的报错实际上和python很相似,他们的报错都会将调用栈打印出来,我们可以顺着调用栈去一层一层的找到最终错误的地方,python的报错提示也是比较详细的。但是有编译过程的语言有一个共同的缺点:会将所有的错误都报出来。原因在于他们在编译的时候是通篇代码进行编译的,而不是想python一样逐行解释,他们会将整篇代码的错误统统都找出来,如果代码错误较少,这样的报错无伤大雅,但对于新手而言,可能写一个helloworld就能爆出七八个错误,在java里七把个报错打印出来的报错提示可以有一大页,里面还充斥着各种令人看不懂的包,新手看了直接莫名其妙。

接下来就是python,在之前版本的python报错中,其实类似于java,但是他有两点不同。第一,他比较简略,只给出了错误的原因,比如简单的提示语法错误。这对于其他报错来说是一个缺点。第二,由于python逐行解释的特点,就算一篇代码有很多错误,python也只会一个一个的报错,而不是像编译型语言一样一次全部报出来,这点对于报错的易读性而言算是一个优点。

但是今天我们要介绍的,是python3.10,更新后的python报错,解决了之前的缺点,现在python报错也能更加详细了,来看看现在的python报错:

str = "未闭合的str

File "d:\projects\python\learn\Py310探索.py", line 90
    str = "未闭合的str
          ^
SyntaxError: unterminated string literal (detected at line 90)
arr = [1, 2, 2, 3

  File "d:\projects\python\learn\Py310探索.py", line 91
    arr = [1, 2, 2, 3
          ^
SyntaxError: '[' was never closed

类型注释

喜欢python的小伙伴有一些是青睐他的动态变量,我们无需声明变量的类型就可以引用,这个变量上一秒还是int型的,下一秒就变成float了,这一切全凭我的意愿。但这实际上会带来两个问题,对于解释器而言,要处理这些动态类型需要解释器去猜测这个变量的类型,在运算的时候好及时转换,这会降低解释器的效率。对于程序员而言,有变量类型的函数我们不需要看函数内部代码就能知道这个函数传进去的参数是什么类型,返回的又是什么类型。而这一点在老版本的python中做不到。老版本的Python中我们需要看完这个函数的代码才能去猜测传入参数和返回值的类型(看起来像是重复解释器遇到的困境,但实际上困扰解释器的问题也困扰着我们),一个函数的代码量如果较少且容易理解,或者带有注释,对我们带来的影响可能没那么大,但当写代码的人不写注释且函数复杂难懂的时候那就是一场灾难。

在新版本的python中来了类型注释,这样可以明显地提高代码的可读性。小编认为这也是提高python易学性的一个关键。

def f(x: int | float) -> float:
    return x * 3.142
f(1)  # pass
f(1.5)  # pass
f('str')  # linter will show annotation error

类似上面这样,传入的参数可能是int也可能是float,虽然这部分内容是来自类型注释联合操作符的,但也能看到类型注释相关的内容。

读到这里,这篇“python3.10新特性是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. EF Core 2.0新特性是什么
  2. MySQL 5.7 新特性是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Linux下如何使用Xedit

下一篇:vue.js代码的使用技巧有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》