在case的标量,也可以是多值,多值之间通过|分割(与C、JAVA的switch-case不同),例如: ... case 401|403|404: return "Not allowed" match-case只有OR模式,没有AND模式 匹配枚举 可以通过定义枚举值来进行条件匹配,match-case看上去是把枚举值当做标量来处理。 class Color(): RED = 1 GREEN = 2 BLUE = ...
, '2', '3']deftype_of(var): match var: case int() | float() as var:return"数值" case dict() as var:return"字典" case list() | tuple() | set() as var:return"列表,元组,集合" case str() as var:return"字符串" case _:return"其他类型"print(type_of(1)) ...
根据月份返回对应的季节 def get_season(month: int) -> Season: # 使用 match-case 结构匹配不...
用 match-case 重构后,能将原先 if 条件和赋值语句,从 10 行左右(Black Formatter 默认格式),缩...
match/case 模式匹配功能,可以替换我们常用的if/elif/elif/.../else代码块,并且支持析构:一种更强大的拆包功能。模式匹配是一种强大的工具,借助析构可以处理 嵌套的映射和序列 等结构化记录。下面是从书本中整理借鉴的内容,供大佬们学习参考: 一、序列模式匹配 ...
就在国庆期间( 2021年10月4日),Python 终于正式发布了 3.10 版本,看了下这个版本的一些特性,最受关注的应该就是结构模式匹配了吧?也就是大家所熟悉的switch-case,写错了不好意思,是 match-case。 下边是最简单的一个 match-case 的例子,看起来是不是非常的直观简洁?
match-case是python3.10+的新特性,可以理解为python中的switch-case。如果你想要使用它,请注明所需python>=3.10. 基本语法和语义 match <表达式>: case <值1>: <语句块1> case <值2> | <值3> | <值4> : <语句块2> case _: <语句块3>
match ... case是 Python 3.10 中引入的一个新特性,也被称为“模式匹配”或“结构化匹配”。 它为Python 带来了更强大、更易读的分支控制,相比于传统的if-elif-else链。 基本模式匹配 x = 10 match x: case 10: print("x is 10") case 20: ...
def tell_vip(name): match name: case 'Alice' | 'Bob': print(f'Hello, vip {name}') case _: print(f'Hello, {name}') tell_vip('Alice') # Hello, vip Alice 3 列表 (list) 的模式匹配 3.1 规则 列表的规则同时适用于元组 (tuple),只需要将匹配规则中的 [] 改成() 即可[^3]。 _...
match item:case[time, action]: print(f'{time} {action}')case[time, *actions]:foractioninactions: print(f'^^ {time} {action}') alarm(['afternoon','work']) alarm(['morning',1,5,6]) def alarm(item: list): match item:case[('morning'|'afternoon'|'evening')astime, action]: ...