正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

几天前,Python 3.10 正式版终于颁布了。这次,想必每个程序员都会爱上它。

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

Python 是当今最流行的编程语言之一,已被广泛用于各种领域和应用,从学习计算机科学的基础知识到执行复杂而直接的科学计算任务,再到构建游戏,它的影子无处不在。Python 甚至应用于数据科学和量子计算等更高级的领域。

2020 年 11 月,Python 3.10 第二个 alpha 版本颁布,在类别注释扩展、zip、位计数、字典映射有了新的改进。今年 4 月,Python 3.10 beta 版颁布,最大的亮点就是引入了 switch-case 语句。之后,Python 又陆续颁布了几个 beta 和 rc(Release Candidate)版本。

10 月 4 日,Python 官方终于颁布了 Python 3.10 正式版。新版本中,Python 添加了一些独特且有价值的特点,同时删除了一些旧特点。有人总结出了 3.10 版本的三大重要特点,分别是:

更好的正确追踪;

match-case 结构模式匹配;

新型 Union 运算符。

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

法国学者 Thibault Clerice 表示,「随着 Python 3.10 的颁布,每个程序员都会爱上新的『结构模式匹配』功能。」

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

对于 Python 3.10 的新特点,威斯康星大学麦迪逊分校统计学助理教授、畅销书籍《Python Machine Learning》的作者 Sebastian Raschka 表示,「新特点中最令人兴奋的是改进的正确信息提示,像缺少逗号或拼写正确等小的正确,现在很容易被发现。」

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

此外,有网友表示,Python 3.10 已经提供了适配 Linux 和 macOS 系统的 psycopg2 二进制包,但 Windows 系统尚未适配好。

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

庆应大学量子计算博士生 Sara A. Metwalli 更是撰文对 Python 3.10 的全新特点进行了全面的整理,总结出了以下六大新特点和附件组件。

Python 3.10 最新特点

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

特点 1:更好的正确追踪

作为一位每天应用 Python 编写代码的码农,肯定没少踩过语法正确的坑。虽然成熟的程序员可以熟练地掌握 Python 技巧,语法上的正确也能很好地修复,但有时我们希望得到更准确的正确消息,以帮助更好地定位正确,节省调试时间。

Python3.10 新增两个特点,可以更好地处理正确,即更好的正确消息和用于调试的精确行号。以下列代码为例,代码中包含字典和函数,然而这段代码显示没有关闭字典。

some_dict = {1: "jack", 2: "john", 3: "james" ,
a_results = a_useful_function()

在之前的 Python 版本中,这个正确信息看起来像这样:

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

但是,随着 Python 3.10 的到来,新的正确消息和行编号的改进,能给码农带来更好的正确消息,比如正确的确切类别及其确切的行号都能追踪。

正确调试精确到行、match-case模式匹配……Python 3.10正式版真的很友好

Python 3.10 关于正确追踪新特点将有助于加快调试速度,并减少初学者挫败感。

特点 2:引入结构模式匹配

如果你已经应用过 C++ 等其他编程语言,或许你会期待 Python 有 switch 语句,这样就不必通过长的 if、 elif、 elif…. else 语句来完成任务。Python 3.10 的一个新特点是增加了结构模式匹配,或者换句话说,增加了 match case 语句,它的语法如下:

match subject:    
     case <patt1>:
        <act1>
    case <patt2>:
        <act2>
    case <patt3>:
        <act3>
    case _:
        <action_default>

特点 3:新型 Union 运算符

尽管 Python 是一种动态类别的编程语言,但有一些方法可以使它的某些部分成为静态类别。例如,如果你正在编写一个函数,并且属性(attributes)的类别对于函数内部的转换非常重要。在以前的版本中,可以指定属性的类别,例如:

def func(num: int) -> int: 
 return num + 5

但问题来了,如果你想接受两种类别,则需要应用 Union 关键字:

def func(num: Union[int, float]) -> Union[int, float]: return num + 5

在 Python 3.10 中,你可以在两种类别中进行选择,应用 | 运算符而不是 Union 来进行更直接的类别决策:

def func(num: int | float) -> int | float: 
 return num + 5

特点 4:Stricter Zipping

Python 中一个有趣的函数是 zip() 函数,这是 Python 中的内置函数,允许组合和迭代来自多个序列的元素。在以前的版本中,你可以应用具有不同长度序列的 zip,但是现在引入了一个新的参数 strict,用来检查传递给 zip 函数的所有可迭代对象是否具有相同的长度。

特点 5:自动文本编码

有时编码会遇到这种情况,代码在一台机器上可以运行,但是在另一台机器上会出错。导致这种情况的原因很多,有些是文本编码造成的。在 Python 的早期版本中,如果没有显式声明编码类别,首选的本地编码可能会导致代码在其他计算机上出现正确。在新版本的 Python3.10 中,如果用户打开没有特定编码类别的文本文件时,可以激活一个警告来通知用户。

特点 6:异步迭代

异步编程是一种功能强大的高级编程范式,它自 Python 3.5 版以来一直是 Python 的一部分。在 Python 3.10 中,有两个新的异步内置函数 aiter() 和 anext() 使代码更具可读性。

对于很多程序员来说,Python 可能是他们编程的首选语言。Python 在众多编程语言排行榜中也多次位居榜首,如 IEEE 2021 编程语言排名,Python 一骑绝尘,在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置。此次 Python 3.10 颁布,必将为 Python 这门编程语言带来更好的编程体验。

参考链接:

https://towardsdatascience.com/6-new-awesome-features-in-python-3-10-a0598e87689f

给TA打赏
共{{data.count}}人
人已打赏
AI

国产产业软件弯道超车迎曙光,首款云原生CAD取得重大突破

2021-10-12 11:00:00

AI

5300亿参数的「威震天-图灵」,微软、英伟达合力造出超大语 言模型

2021-10-12 14:42:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索