对新手更加友好的python来了!——python3.10新特性介绍

9,653次阅读
没有评论

共计 2007 个字符,预计需要花费 6 分钟才能阅读完成。

关于 python 版本更新的内容,现在有了一个明确的发行计划,在去年的十月份,python3.10 的一些新特性被提出。而今天,我们已经可以安装正式版 python 来体验这些新特性了。这些新特性包括:类型注释的进一步拓展,延迟类型注释的执行,类型注释联合操作符,带括号的上下文管理器,显式类型别名,加强版的 Switch-case(python 中叫 match-case)语句,更友好的报错提示等。弃用了 distutils 等内容。详细的内容可以前往 python 官网查看 相关文档,这里小编主要介绍它是如何对新手更加友好的。

更友好的报错提示

很多编程语言都有一套自己的报错机制,就小编的学习经历而言,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:projectspythonlearnPy310 探索.py", line 90
    str = " 未闭合的 str
          ^
SyntaxError: unterminated string literal (detected at line 90)
arr = [1, 2, 2, 3

  File "d:projectspythonlearnPy310 探索.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 更新了很多有趣的东西,python 也因此变得更加易于学习,现在正是学习 python 的好时机,小伙伴们赶快来学习 python 吧

原文地址: 对新手更加友好的 python 来了!——python3.10 新特性介绍

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-23发表,共计2007字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)