Python没有传统意义上的case
语句,但可通过match-case
(Python 3.10+引入)或字典映射实现类似功能。以下是具体实现方式及注意事项:
-
match-case
结构(推荐)
Python 3.10新增的模式匹配语法,类似其他语言的switch-case
:pythonCopy Code
match 变量: case 模式1: # 可匹配具体值、类型或复杂结构 操作1 case _: # 默认分支 默认操作
优势:支持类型匹配、解构赋值,代码可读性高。
-
字典映射法(兼容旧版本)
通过字典的键值对模拟分支逻辑:pythonCopy Code
def case1(): return "结果1" switcher = {1: case1, 2: lambda: "结果2"} # 值可为函数或直接结果 result = switcher.get(输入, lambda: "默认值")()
适用场景:需兼容Python 3.10以下版本时使用。
-
if-elif-else
链
简单场景可直接用多重条件判断,但分支较多时代码会冗长。
提示:优先选择match-case
(需确保环境为Python 3.10+),旧项目可评估字典映射或重构必要性。模式匹配是Python未来重点演进特性之一。