用 Python 3.10 的模式匹配解放你的 if-else 嵌套
如果你还在 Python 中使用冗长的 if-elif-else 链来处理复杂条件判断,那么是时候认识一下 Python 3.10 引入的模式匹配(Pattern Matching)功能了。这个被称为 match-case 的语法不仅能让代码更简洁,还能大幅提升可读性。
基础用法示例
def handle_response(response):
match response:
case {
"status": 200, "data": data}:
return process_data(data)
case {
"status": 404}:
return "Resource not found"
case {
"status": 418}:
return "I'm a teapot"
case _:
return "Unexpected response"
高级模式匹配
模式匹配的强大之处在于它能解构复杂数据结构:
match user:
case User(name=str(name), age=int() as age) if age >= 18:
print(f"Adult user: {name}")
case [x, y, *rest]:
print(f"First: {x}, Second: {y}")
实践建议
- 在处理 JSON API 响应、状态机或复杂数据验证时,match-case 特别有用
- 可以替代深度嵌套的 if-elif-else 结构
- 与类型提示结合使用效果更佳
模式匹配不仅是语法糖,更是一种声明式的编程思维方式。它让代码意图更清晰,减少错误,尤其在处理复杂业务逻辑时优势明显。虽然 Python 的模式匹配不如函数式语言那样强大,但对于日常开发已经足够实用。
下次当你面对多层嵌套的条件判断时,不妨试试 match-case,让代码变得更加优雅!
代码即诗,模式匹配让这首诗更有韵律。