Структурное сопоставление с образцом, введённое в Python 3.10 через PEP 634, предоставляет мощный синтаксис match/case, который выходит далеко за рамки традиционного switch — он поддерживает деструктуризацию, проверку типов и привязку значений в одной конструкции.
match вычисляет проверяемое выражениеcase определяет образец для сопоставленияcase выполняется; остальные пропускаются_ работает как вариант по умолчаниюdef handle_command(command):
match command:
case {"action": "move", "direction": direction}:
print(f"Moving {direction}")
case {"action": "attack", "weapon": weapon}:
print(f"Attacking with {weapon}")
case {"action": "quit"}:
print("Quitting game")
case _:
print("Unknown command")
handle_command({"action": "move", "direction": "north"})
# Output: Moving north
if к case для более тонкого контроляСтруктурное сопоставление с образцом заменяет сложные цепочки операторов if/elif на читаемый, декларативный код. Это особенно полезно при обработке структурированных данных, таких как команды, ответы API или узлы AST — намерение становится яснее, а шаблонного кода становится меньше.
В Python синтаксис match/case позволяет выполниться нескольким блокам case, если их паттерны оба совпадают с выражением subject.
Новый — ещё не проверен сообществом
Вы