python最新版本3.10特性大全

全文3000字,预计阅读时间20min,建议先赞后看!

一.上下文管理器

python3.10 中,with 支持使用外层圆括号来使用多个上下文管理器,可以连续多行地书写。这允许将过长的上下文管理器集能够以与之前 import 语句类似的方式格式化为多行的形式。例如,以下这些示例写法现在都是有效的:

with (CtxManager() as example):
    pass


with (
    CtxManager1(),
    CtxManager2()
):
    pass


with (CtxManager1() as example,
      CtxManager2()):
    pass


with (CtxManager1(),
      CtxManager2() as example):
    pass


with (
    CtxManager1() as example1,
    CtxManager2() as example2
):
    pass

二.新增结构化模式匹配

python3.10 中新增的结构化模式匹配,主要由 match、case 两个关键字实现,模式匹配的通用语法如下

status = 404


match status:
    case 400:
        res =  "Bad request"
    case 404:
        res =  "Not found"
    case 418:
        res =  "I'm a teapot"
    case _:
        res =  "Something's wrong with the internet"

match 语句接受一个表达式并将其值与以一个或多个 case 语句块形式给出的一系列模式进行比较。具体来说,模式匹配的操作如下:

使用具有特定类型和形状的数据 (subject) 针对 subject 在 match 语句中求值 从上到下对 subject 与 case 语句中的每个模式进行比较直到确认匹配到一个模式。 执行与被确认匹配的模式相关联的动作。 如果没有确认到一个完全的匹配,则如果提供了使用通配符 _ 的最后一个 case 语句,则它将被用作已匹配模式。如果没有确认到一个完全的匹配并且不存在使用通配符的 case 语句,则整个 match 代码块不执行任何操作。

三.新的类型联合运算符

python3.10 中引入了启用 X | Y 语法的类型联合运算符。这提供了一种表示 '类型 X 或类型 Y' 的相比使用 typing.Union 更清晰的方式,特别是在类型提示中。在之前的 Python 版本中,要为可接受多种类型参数的函数应用类型提示。

def square(number: Union[int, float]) -> Union[int, float]:
    return number ** 2

类型提示现在可以使用更简洁的写法:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢软测的小北葵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值