在几天之前, 3.10正式版本最终发布了。这一回, 大概每一位去搞程序编写的人员都会对它产生喜爱之情。
是在当下极为流行的编程语言当中的一员, 已经被大范围地运用在各类领域以及应用里, 从去学习计算机科学的基础内容开始, 一直到去执行繁琐而又直接分明的科学计算任务过程中, 后面到构建游戏的阶段, 它的踪迹到处都有。甚至还被应用在诸如数据科学以及量子计算等更具专业性的领域之中。
2020年11月, 3.10第二个alpha版本发布, 此版本在类型注释扩展方面有新改进, 在zip, 在位计数方面有新改进, 在字典映射方面也有新改进。今年4月, 3.10 beta版发布, 其最大亮点是引入了 -case语句。之后, 又陆续发布了几个beta版本, 又陆续发布了几个rc()版本。
在 10 月 4 日的时候, 官方最终发布了 3.10 正式版, 在新版本当中, 增添了一些具备独特性且拥有价值意义的特性, 与此同时又删除了一些旧有的特性, 有人归纳总结出了 3.10 版本的三大具有重要意义的特性, 具体分别是:
有着法国学者身份的人, 进行了表示, 称, 伴随着3.10这个版本的发布, 每一位程序员, 都会对全新的那个“结构模式匹配”功能, 产生喜爱之情。
关于3.10那个新特性, 威斯康星大学麦迪逊分校统计学助理教授、畅销书籍《 》的作者表达了这样的意思, 「新特性里头最让人感到兴奋不已的是经过改进的错误信息提示, 诸如缺少逗号或者存在拼写错误这类细小的错误, 如今很轻易就能够被察觉出来。」。
同时, 有部分用户称, 3月10日已给出了适用于Linux以及macOS系统的二进制包, 不过, 系统却还没有完成适配。
庆应大学, 有个叫Sara A.的量子计算博士生, 她撰写了文章, 对3.10的全新特性做了全面整理, 从中总结出了以下六大新特性, 还有附件组件。
3.10 最新特性
特性 1:更好的错误跟踪
身为一名每日运用编写代码的码农, 必定没少遭遇语法错误的坑。虽说成熟的程序员能够娴熟地掌握技巧, 语法方面的错误也能够妥善修复, 然而有时我们期望获取更精准的错误消息, 用以协助更精准地定位错误, 节省调试时长。
10新增了两个特性, 这两个特性能够更好地处理错误, 也就是能给出更好的错误消息, 能提供用于调试的精确行号。以下列代码作为例子, 代码里面包含字典, 还包含函数, 然而, 但这段代码显示出没有关闭字典的情况。
这段内容似乎不太完整且存在格式问题, 不太能准确理解其确切含义, 难以按照要求进行改写。请提供更清晰准确的内容。
在之前的 版本中,这个错误信息看起来像这样:
然而, 伴随 3.10 的来临, 新出现的错误消息以及行编号方面的改进, 能够为程序员带来更为良好的错误消息, 举例而言, 错误的准确类型以及其确切的行号均可进行跟踪 标点: 句号结束。
3.将有助于加快调试速度的错误跟踪新特性, 能减少初学者的挫败感, 这一特性将会是, 关于10的。
特性 2:引入结构模式匹配
要是你已然运用过诸如C++之类的别的编程语言, 说不定你会期望存在语句, 如此一来就无需借助冗长的if、elif、elif…else语句去达成任务。3.10的一项新特性乃是增添了结构模式匹配, 或者换句话讲, 增添了match case语句, 其语法如下:
match : case
: case
: case
: case _:
特性 3:新型 Union 运算符
虽然 是为一种具备动态类型特性的编程语言, 然而却存在着一些方式能够让它的某些局部变成静态类型。比如说, 要是你正着手写一个函数, 并且属性()的那种类型对于函数以内的转换而言相当关键且重要。在以往已有的版本当中, 能够去指定属性的类型, 就如同这样:
定义一个名为func的函数, 该函数接受一个整数类型的参数num, 函数返回值类型为整数, 函数体是将num加上5。
然而问题涌现出来了, 若是你打算接纳两种类别, 那么就需要运用 Union 关键字:
def func(num: Union
int, float
) -> Union
int, float
: num + 5
于3.10里, 你能够于两种类型间予以挑选, 借助|运算符而非Union去实施更径直的类型判定:
定义一个函数名为func, 其参数num的类型为整数或者浮点数, 返回的类型也是整数或者浮点数, 该函数的功能是让num加上数字化的5。
特性 4:
有趣的函数之中有一个是 zip() 函数, 它属于内置函数, 能允许对来自多个序列的元素进行组合以及迭代。在以往版本里, 可使用具有不同长度序列的 zip, 然而当下引入了一个全新参数, 其作用是用以检查传递给 zip 函数的全部可迭代对象是不是具有相同的长度。
特性 5:自动文本编码
有时, 编码时会碰到这么一种状况, 代码于一台机器上能够运行, 然而在另一台机器上却会出错, 致使这般情况产生的缘由诸多, 其中有些是由文本编码所造成的。于早期版本里, 若是未进行显式声明编码类型, 那首选的本地编码有可能致使代码在别的计算机上出现差错。在新版本的.10中, 要是用户打开没有特定编码类型的文本文件时, 能够激活一个警告去通知用户。
特性 6:异步迭代
有着强大功能的高级编程范式是异步编程, 它从3.5版开始就成为了一部分, 在3.10里, 有两个新的异步内置函数, 分别是aiter()和anext(), 这让代码更具可读性。
对于很大一批程序员来讲, 往往是他们进行编程时会优先考虑选用的语言。于诸多编程语言的排名榜单当中, 也多次处在首位, 就像IEEE 2021编程语言的排名那样, 遥遥领先, 在总的榜单以及其他几个细分的榜单里面, 始终顽强地占据着第一名的位子。这次3.10版本的发布, 肯定会给此门编程语言带去更佳的编程感受。
参考链接: