Python 3.11正式版来了,比3.10快10-60%,官方:这或许是最好的版本

想要体验新功能的小伙伴赶紧去试试新版本吧!

图片

2020 年 1 月 1 日,Python 官方结束了对 Python 2 的维护,这意味着 Python 2 已完全退休,进入了 Python 3 时代。打从进入 3 版本以来,Python 官方已经发布了众多修改分支,现在来到了最新的版本 Python 3.11。其实研究界有个不公开的秘密,那就是 Python 运转速率并不快但容易上手,因此利用人数超级多,在众多最受欢迎语言榜单中 Python 多次位列第一。很多开发者都期待这门语言的性能有所提升,还有人畅想 Python 4 会不会在某个不经意的时刻到来,有这种想法的人可以放一放了,Python 之父 Van Rossum 都说了,Python 4.0 可能不会来了。Van Rossum 曾表示:「我和 Python 核心开发团队的成员对 Python 4.0 没什么想法,提不起兴趣,估计至少会一直编号到 3.33。Python 的加速是渐进式的,3.11 版本会有新的速率提升,预计会比 3.10 快得多。」正如 Van Rossum 所说,根据官方资料显示最新发布的 Python 3.11 比 Python 3.10 快 10-60%,对用户更友好。这一版本历经 17 个月的开发,现在公开可用。Python 3.11 的具体改善主要表现在:更详实的 Error Tracebacks、更快的代码执行、更好的异步任务语法、改善类别变量、支援 TOML 配置解析以及一些其他非常酷的功能(包括快速启用、Zero-Cost 非常处理、非常组等)。

图片

Python 指导委员会成员和核心开发者、Python3.10/3.11 发布管理者 Pablo Galindo Salgado 表示,为了使 3.11 成为最好的 Python 版本,我们付出了很多努力。

图片

Python 3.11 新特性Error TracebacksPython 这门编程语言对初学者非常友好,它具有易于理解的语法和强大的数据结构。但对于刚刚接触 Python 的人来说却存在一个难题,即如何解释当 Python 遇到失误时显示的 traceback。Python 3.11 将 Decorative annotation 增添到 tracebacks 中,以帮助用户更快地解释失误消息。想要获得这种功能,可以将以下代码增添到 inverse.py 文件中。

图片

举例来说,你可以利用 inverse() 来计算一个数的倒数。因为 0 没有倒数,所以在运转下列代码时会抛出一个失误。

图片

注意嵌入在 traceback 中的 ^ 和~ 符号,它们指向导致失误的代码。与此前的 tracebacks 一样,你应该从底层开始,然后逐步向上。这种操作对发现失误非常有用,但如果代码过于复杂,带注释的 tracebacks 会更好。更快的代码执行Python 以速率慢著称,例如在 Python 中,惯例循环比 C 中的类似循环慢几个数量级。Python 官方正在着手改善这一缺陷。2020 年秋,Mark Shannon 提出了关于 Python 的几个性能改善。这个提议被称为香农计划 (Shannon Plan),他们希望通过几个版本的更新将 Python 的速率提高 5 倍。不久之后微软正式加入该计划,该公司正在支援包括 Mark Shannon、Guido van Rossum 在内的开发人员,致力于「Faster CPython」项目的研究。「Faster CPython」项目中的一个重要提案是 PEP 659,在此基础上,Python 3.11 有了许多改善。PEP 659 描述了一种「specializing adaptive interpreter」。主要思想是通过优化经常执行的操作来加快代码运转速率, 这类似于 JIT(just-in-time)编译。只是它不影响编译,相反,Python 的字节码是动态调整或可更改的。

图片

研究人员在字节码生成中增添了一个名为「quickening」的新步骤,从而可以在运转时优化指令,并将它们替换为 adaptive 指令。一旦函数被调用了一定次数,quickening 指令就会启用。在 CPython 3.11 中,八次调用之后就会启用 quickening。你可以通过调用 dis() 并设置 adaptive 参数来观察解释器如何适应字节码。在基准测试中,CPython 3.11 比 CPython 3.10 平均快 25%。Faster CPython 项目是一个正在进行的项目,已经有几个优化计划在 2023 年 10 月与 Python 3.12 一起发布。你可以在 GitHub 上关注该项目。项目地址:https://github.com/faster-cpython/ideas更好的异步任务语法Python 中对异步编程的支援已经发展了很长时间。Python 2 时代增添了生成器,asyncio 库最初是在 Python 3.4 中增添的,而 async 和 await 关键字是在 Python 3.5 中增添的。在 Python 3.11 中,你可以利用任务组(task groups),它为运转和监视异步任务提供了更简洁的语法。改善的类别变量Python 是一种动态类别语言,但它通过可选的类别提示支援静态类别。Python 静态类别系统的基础在 2015 年的 PEP 484 中定义。自 Python 3.5 以来,每个 Python 版本都引入了几个与类别相关的新提案。Python 3.11 发布了 5 个与类别相关的 PEP,创下新高:PEP 646: 可变泛型PEP 655: 根据需要或可能丢失的情况标记单个 TypedDict 项PEP 673: Self 类别PEP 675: 任意文字字符串类别PEP 681: 数据类转换支援 TOML 配置解析TOML 是 Tom's Obvious Minimal Language 的缩写。这是一种在过去十年中流行起来的配置文件格式。在为包和项目指定元数据时,Python 社区已将 TOML 作为首选格式。虽然 TOML 已被利用多年,但 Python 并没有内置的 TOML 支援。当 tomllib 增添到标准库时,Python 3.11 中的情况发生了变化。这个新模块建立在 toml 第三方库之上,允许解析 TOML 文件。以下是名为 units.toml 的 TOML 文件示例:

图片

其他功能除了以上主要更新和改善之外,Python 3.11 还有更多值得探索的功能,比如更快的法式启用速率、对非常的更多改变以及对字符串格式的小幅改善。更快的法式启用速率Faster CPython 项目的一大成果是实现了更快的启用时间。当你运转 Python 脚本时,解释器初始化需要一些操作。这就导致即便是最简单的法式也需要几毫秒才能运转。

图片

在很多情况下,与运转代码所需时间相比,启用法式需要的时间可以忽略不计。但是在运转时间较短的脚本中,如典型的命令行应用法式,启用时间可能会显著影响法式性能。比如考虑如下脚本,它受到了经典 cowsay 法式的启发。

图片

在 snakesay.py 中,你从命令行读取一条消息,然后将这条消息打印在带有一条可爱蛇的对话气泡中。你可以让蛇说任何话。这是命令行应用法式的基本示例,它运转得很快,但仍需要几毫秒。这一开销的很大部分发生在 Python 导入模块时。

图片

你可以利用 – X importtime 选项来显示导入模块所用的时间。表中的数字为微秒为单位,最后一列是模块名称的格式。

图片

该示例分别运转在 Python 3.11 和 3.10 上,结果如下图所示,Python 3.11 的导入速率更快,有助于 Python 法式更快地启用。

图片

零成本非常非常的内部表示在 Python 3.11 中有所不同。非常对象更轻量级,并且非常处理发生了变化。因此只要不触发 except 字句,try … except 块中的开销就越小。所谓的零成本非常受到了 C++ 和 Java 等其他语言的启发。当你的源代码被编译为字节码时,编译器创建跳转表,由此来实现零成本非常。如果引发非常,查询这些跳转表。如果没有非常,则 try 块中的代码没有运转时开销。非常组此前,你了解到了任务组以及它们如何同时处理多个失误。这都要归功于一个被称为非常组的新功能。我们可以这样考虑非常组,它们是包装了其他几种惯例非常的惯例非常。虽然非常组在很多方面表现得像惯例非常,但它们也支援特殊语法,帮助你有效地处理每个包装非常。如下所示,你可以通过给出一个描述并列出包装的非常来创建一个非常组。

图片

非常 Notes惯例非常具有增添任意 notes 的扩展能力。你可以利用. add_note() 向任何非常增添一个 note,并通过检查.__notes__属性来查看现有 notes。

图片

负零格式化利用浮点数进行计算时可能会遇到一个奇怪概念——负零。你可以观察到负零和 regular zero 在 REPL 中呈现不同,如下所示。

图片

更多关于 Python 3.11 的更新细节请参阅原文档。原文链接:https://realpython.com/python311-new-features/

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/python311-zheng-shi-ban-lai-le-bi-310-kuai-1060-guan-fang/

(0)
上一篇 2022年 10月 25日 上午10:51
下一篇 2022年 10月 26日 下午4:53

相关推荐

  • 当春乃发「声」,呆板之心AI科技年会高朋揭晓

    时在中春,阳和方起。呆板之心「AI科技年会」将于3月23日举办。本次活动分为三场论坛:人工智能论坛、AI x Science 论坛和首席智行官大会。由于疫情原因,「人工智能论坛」与「AI x Science 论坛」转为线上直播;「首席智行官大会」仍在北京线下举办。「人工智能论坛」直播地址:http://live.bilibili.com/3519835「AI x Science 论坛」直播地址:http://live.bilibili.com/24531944「首席智行官大会」线下报名地址:http://hdxu.

    2022年 3月 10日
  • WAIC 2021 | 云天励飞副总裁肖嵘:创「芯」时代 打造自进化都市智能体

    在 WAIC 2021 AI 开发者论坛上,肖嵘发表主题演讲《创「芯」时代 打造自进化都市智能体》,在演讲中,他主要介绍了自进化都市智能体,并介绍了云天励飞最新研究成果及成功案例。

    2021年 7月 19日
  • 比利时艺术家在Twitter上线AI,督促政客开会时不要玩手机

    在日常任务中,人人都会在沉闷的聚会上分神看手机。但如果你身为一名政府人员,在为纳税人任务,那么参加立法会的时候,你应该准备好接受人工智能的监督,立法机关的「黑镜」正盯着你呢。整理报道 | 吕海洋数字艺术家 Dries Depoorter 将他的最新装置「The Flemish Scrollers」链接到了比利时佛兰德省议会的聚会直播间。他的软件使用面部辨别技术,可以自动点名那些开会时专心玩手机的政客。该项目是在佛兰德部长兼总统扬·詹邦(Jan Jambon)在政策评论辩论期间玩气忿的小鸟后引起公众气忿近

    2021年 7月 7日
  • 中科驭数宣布完成数亿元A+轮融资,第二代DPU芯片完成研发计划

    DPU芯片计划企业中科驭数今日宣布完成数亿元规模A+轮融资,本轮融资由麦星投资和昆仑资源结合领投,老股东灵均投资、光环资源追加投资。这是继7月底完成A轮融资之后,中科驭数今年获得的第二笔更大规模的数亿元融资。所筹资金将用于DPU芯片的研发和量产、以及市场开拓。曾经完成第二代DPU芯片K2的计划工作中科驭数正在研发的第二代DPU芯片K2曾经完成计划和验证工作,预计将于2022年第一季度投产流片。DPU是数据专用处理器(Data Processing Unit),是数据中心继CPU和GPU之后第三颗重要的算力芯片。随着

    2021年 12月 21日
  • 我,波士顿能源的机器人工程师,这是我的一天

    波士顿能源大家都很熟悉,但该公司员工的任务和生活却很少有人了解。特别是新冠疫情在美国的蔓延,员工的日常任务和生活不可避免地受到了影响。本文就带大家看看波士顿能源的员工如何度过自己的一天。

    2021年 5月 27日
  • 时隔近50年,剑桥团队首次检测到量子自旋液体,钻研登上《Science》

    钻研者应用量子摹拟器检测到一种难以捉摸的物资形态:量子自旋液体,可用于量子计算机等技术的发展。

    2021年 12月 9日
  • Mistral AI新模型对标GPT-4,不开源且与微软分工,网友:忘了初心

    「欧洲版 OpenAI」的「最强开源大模型」,被微软收编了。生成式 AI 领域,又有重量级产品出现。周一晚间,Mistral AI 正式颁布了「旗舰级」大模型 Mistral Large。与此前的一系列模型不同,这次 Mistral AI 颁布的版本功能更强,体量更大,直接对标 OpenAI 的 GPT-4。而新模型的出现,也伴随着公司大方向的一次转型。随着 Mistral Large 上线,Mistral AI 推出了名为 Le Chat 的聊天助手(对标 ChatGPT),任何人都可以试试效果。试用链接:htt

    2024年 2月 27日
  • Creator 面对面 | 北大河图在希罕大模型训练架构上的几点探索

    河图是北京大学数据与智能实验室自研的一款分布式深度学习框架,兼顾创新性和可用性,这也是国内首个由高校自主研发的分布式深度学习系统。底层的算子实现到上层的模型设计完全是由河图团队自主实现。

    2022年 7月 13日
  • 新的量子算法破解了非线性方程,计算机能否代替人类成为「先知」?

    曾经我们以为,无论计算机有多么强大,都不足以预测未来。现在这个想法很可能要被推翻了:计算机可能比人类更擅长成为「先知」。

    2021年 1月 12日
  • 只谈「手艺」,不谈「危险」?今晚,我们聊聊人工智能的AB面

    聚焦隐私计算、Deepfake、对抗进修等AI危险范围,精彩全分享。

    2021年 2月 7日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注