新版本尝鲜:Python 3.9版本中的新功能有哪些?

  发布时间:2025-11-05 08:38:19   作者:玩站小弟   我要评论
本文转载自公众号“读芯术”(ID:AI_Discovery)。又要到Python新版本发布的时刻了,测试版已然推出,完整发行版将在不久之后与我们见面。这无疑令技术爱好者们十分兴奋,摩拳擦掌地等待上手一 。

本文转载自公众号“读芯术”(ID:AI_Discovery)。新版鲜

又要到Python新版本发布的本尝n版本中时刻了,测试版已然推出,新版鲜完整发行版将在不久之后与我们见面。本尝n版本中这无疑令技术爱好者们十分兴奋,新版鲜摩拳擦掌地等待上手一探究竟。本尝n版本中

新版本中有许多值得期待的新版鲜新功能,本文就先带大家尝尝鲜。本尝n版本中

1. 字典合并

这是新版鲜笔者最喜欢的新功能之一,它拥有优美的本尝n版本中语法。如果有两个字典a和b需要合并,新版鲜可以使用合并运算符:

合并(merge)操作符|:

a = {1: a,本尝n版本中 2: b, 3: c} b = {4: d, 5: e}c = a | b print(c)[Out]: {1: a, 2: b, 3: c, 4: d, 5: e} 

用来更新原始字典的更新运算符|=:

a = {1: a, 2: b, 3: c} b = {4: d, 5: e}a |= b print(a)[Out]: {1: a, 2: b, 3: c, 4: d, 5: e} 

如果字典共享一个公共键(common key),则使用第二个字典中的新版鲜键值对:

a = {1: a, 2: b, 3: c, 6: in both} b = {4: d, 5: e, 6: but different}print(a | b)[Out]: {1: a, 2: b, 3: c, 6: but different,4: d, 5: e} 

使用迭代更新字典:|=运算符还有一个不错的地方,即能够通过可迭代对象(例如列表或生成器)使用新的本尝n版本中键值对更新字典。

a = {a: one,新版鲜 b: two} b = ((i, i**2) for i in range(3))a |= b print(a)[Out]: {a: one, b: two, 0: 0, 1: 1, 2: 4} 

如果尝试使用标准合并运算符|进行相同的操作,将产生一个类型错误(TypeError),因为它仅允许字典(dict)类型之间的合并操作。

2. 字符串方法

这个功能看起来“其貌不扬”,但实则非常实用。新版本添加了两个用于删除前缀和后缀的新字符串方法:

“ Hello world” .removeprefix(“ He”) [Out]:“ llo world” Hello world” .removesuffix(“ ld”) [Out]:“ Hello wor” 

3. 新分析器

这是一个不可见的更改,服务器托管但有可能成为Python未来发展中最重要的更改之一。

Python当前使用的主要是基于LL(1)的语法,而该语法又可以由LL(1)分析器进行解析,该分析器使用单一的前向标记符从上到下,从左到右地解析代码。

笔者几乎不知道它是如何工作的,但是可以指出一些由于Python使用这种方法导致的问题:

Python包含非LL(1)语法;当前语法的某些部分使用了工作区,从而造成不必要的复杂性。 LL(1)在Python语法中造成限制(没有可用的工作区)。此问题突出说明了以下代码根本无法使用当前分析器实现(引发语法错误): with (open("a_really_long_foo") as foo,       open("a_really_long_bar")as bar):     pass  LL(1)在分析器中以左递归中断。意味着含义特定的递归语法可能导致解析树中的无限循环。

所有这些因素(还有很多根本无法理解的因素)严重限制了Python语言的发展。而基于PEG的新分析器将为Python开发人员提供更大的灵活性,人们会从Python 3.10开始注意到这一点。

4. 类型提示

Python是云服务器动态类型的,这意味着无需在代码中指定数据类型。这一特性本身没有问题,但有时可能会造成混淆。

从Python 3.5开始,用户可以指定类型,但是操作起来非常麻烦。此次更新改变了这一点,举个例子:

无类型提示(左)vs3.9中带类型提示(右)

add_int函数的目的是为数值自身添加相同的数值。但是编辑器并不知道这一点,因此完全可以使用+将两个字符串加在一起,不会发出警告。现在可以将期望的输入类型指定为int。使用此功能,编辑器可以立即了解问题。

用户还可以非常详细地了解所包含的类型,例如:

类型提示可以在任何地方使用,新语法让代码看起来更加整洁:

将sum_dict的参数指定为dict,将返回值指定为整数型。在定义test时,也要确定其类型。

这些新功能确实让人迫不及待,等不及的免费信息发布网同学可以先去试试最新的Beta版本-3.9.0b3。

  • Tag:

相关文章

  • 简单快捷的双系统一键安装教程(轻松享受双系统的便利,一键安装教你如何做到)

    摘要:在使用电脑的过程中,我们有时候需要使用不同的操作系统来满足不同的需求,而双系统就是一个非常好的解决方案。然而,传统的安装双系统往往繁琐且容易出错,不少用户望而却步。本文将介绍一种简...
    2025-11-05
  • 程序员必懂的Redis技术实战

    Redis是现在很受欢迎的NoSQL数据库之一,目前广泛用于缓存系统、分布式锁、计数器、消息队列系统、排行榜、社交网络等场景中,本篇文章成哥为大家带来redis日常使用实践,及通过代码实现redis的
    2025-11-05
  • 乐观锁、悲观锁和MVCC,今天让你一次搞懂

    在数据库的实际使用过程中,我们常常会遇到不希望数据被同时写或者读的情景,例如秒杀场景下,两个请求同时读到系统还有库存1个,然后又先后把库存更新为0,这时候就会出现超卖的情况,这时候货物的实际库存和我们
    2025-11-05
  • 使用这11个代码,可以大大地简化我们的代码

    在这篇文章中,我将与你分享一些关于JS的技巧,可以提高你的JS技能。1.避免if过长如果判断值满足多个条件,我们可能会这么写:if(value===a||value===b||value===c){.
    2025-11-05
  • 拯救者BIOS降级教程(降级BIOS,让拯救者重获新生)

    摘要:在使用拯救者电脑的过程中,由于各种原因,我们可能会遇到一些BIOS版本不兼容、无法正常启动等问题。为了解决这些问题,我们需要学习如何进行BIOS降级。本文将为大家详细介绍拯救者BI...
    2025-11-05
  • 面试官:谈谈 Tomcat 连接器,我一脸懵逼...

    【.com原创稿件】Tomcat 作为应用最广泛的 Web 容器被各大厂商所使用,从体系结构上看 Tomcat 分为连接器和容器两个部分。其中连接器负责 IO 请求转换、网络请求解析以及请求适配等工作
    2025-11-05

最新评论