Skip to content
22 / 22

Что такое pattern matching `match/case` в Python 3.10+ и чем отличается от switch?

match/case — структурное сопоставление с образцом (PEP 634), а не switch. Сопоставляет не только литералы, но и структуру объекта: tuple, list, dict, dataclass через __match_args__. Поддерживает capture patterns, OR-patterns, guards через if. Не нужен break. Анти-паттерн: голые имена воспринимаются как capture, не как сравнение — для констант нужен enum.Foo.BAR или Cls.NAME.

Что такое pattern matching `match/case` в Python 3.10+ и чем отличается от switch? | JScriptiser