python如何使用像C/C++/Java/Go中的switch-case的方式。
这波python更新真的好,不但提升了str()方法的速度,更让人感动哭的是,python终于在python3.10版本中添加case的用法了(结构模式匹配)。
用法举例:
def test_case(value):
match value:
case 1:
print("匹配到1")
case 2:
print("匹配到2")
case 3:
print("匹配到3")
case _:
print("没有匹配到任何status")
if __name__ == "__main__":
test_case(1)
test_case(5)
使用match-case需要注意的几个小点:
1、最后一个 _ 符号并不是一个变量名,二十表示一种特殊的模式,在前面的case都没命中的情况下会命中该行,相当于C/C++/Java/Go语言中的default。
2、当匹配的对象是个字典,只要case表达式中的key在字典中存在则可匹配成功
3、当匹配的是类对象的时候,只要对象类型和对象属性满足条件即可匹配成功
4、当匹配对象是列表(list)或者元组(tuple)的时候,需要长度和元素值都匹配才算匹配成功
5、match-case语法支持可变参数如 *args或 **rest
6、使用**rest的时候会匹配到字典中的所有 key 和 value
case {**rest}:
xxxxxx
详细的用法用例见文档