Python 3.8 - 3.11 版本新特性总结和示例
发布网友
发布时间:2024-10-13 23:35
我来回答
共1个回答
热心网友
时间:2024-10-14 03:42
Python 3.8版本引入了海象操作符:=,一种在表达式内部为变量赋值的新语法,被昵称为“海象运算符”。它能避免在某些情况下重复调用函数,如在正则表达式匹配中检测是否匹配以及提取子分组时,或在使用while循环时计算用于判断循环终止的值,同时该值又在循环体中被使用。此操作符适用于简化代码,提升可读性,但应谨慎使用,以避免复杂性。
Python 3.8版本的f-字符串支持新的=说明符,允许在字符串中自动记录表达式和调试文档。这形式为f'{expr=}',扩展为表达式的文本加上等号和表达式的结果值。通过不同的格式说明符,可以更细致地控制显示的表达式结果。
asyncio模块中的run()函数已从暂定状态升级为稳定API,用于执行coroutine并自动管理事件循环。这提供了一种更方便的方式来运行异步程序。
Python 3.9版本为字典添加了两个新运算符:合并运算符(|)和更新运算符(|=),补充了现有的dict.update方法。这些运算符允许合并字典或原地更新字典。
Python 3.9新增了几个新字符串方法,包括removeprefix()和removesuffix(),用于从字符串中删除前缀或后缀(如果存在)。
在类型标注中,Python 3.9允许使用内置多项集类型(如list和dict)作为通用类型,无需导入对应的大写形式类型名(例如List和Dict)。此外,标准库中的其他类型也是通用的,如queue.Queue。
Python 3.10版本引入了结构化模式匹配,允许匹配列表、元组和字典等数据结构中的模式,使代码更简洁易读。
在Python 3.10中,新增了约束项,允许在模式匹配时添加if子句,以在约束项为假值时继续尝试下一个case语句块。
Python 3.10支持在with语句中使用括号,用于组合多个上下文管理器,以提高可读性。
Python 3.11版本引入了新的类型联合运算符,允许使用X | Y语法来表示类型联合。
在Python 3.11中,代码执行速度提高了10-60%,提高了程序性能。
捕获异常组功能允许程序同时引发和处理多个不相关的异常,通过ExceptionGroup和BaseExceptionGroup内置类型以及新的except*语法实现。
Python 3.11中添加了对本地函数的类型注释支持,允许在本地函数中注释参数和返回类型。
错误消息在Python 3.11中得到改进,当出现语法错误时,错误消息包含更多信息,包括错误位置和预期的令牌,有助于更轻松地调试语法错误。
Python 3.11允许在不使用括号的情况下添加可选的逗号,简化了添加、删除和重新排列元素的过程。
在TypedDict中,现在可以设置元素是否必须存在,通过Required或NotRequired标记来实现。默认情况下,除非将total参数设置为False,否则所有字段仍然是必需的。
Python 3.11中引入了新的Self注释,提供了一种简单直观的方法来注释返回其类实例的方法。
这些特性和改进使得Python编程更加高效、易读和强大。