Конструкции match/case в Python, введенные в версии 3.10, предоставляют механизм структурного сопоставления с образцом (structural pattern matching). Это позволяет сравнивать значение выражения со списком образцов и выполнять блок кода, соответствующий первому совпавшему образцу.
Основные элементы:
match: Ключевое слово, вводящее блок сопоставления. За ним следует выражение, значение которого будет сопоставляться.case: Ключевое слово для определения образца. За ним следует сам образец. Если значение выражения из match совпадает с образцом из case, выполняется код, находящийся внутри этого блока case.if).Пример базового использования:
python
Пример сопоставления с составными структурами и записывающими переменными:
python
Пример с защитным условием:
python
Преимущества match/case:
if/elif/else, особенно при сопоставлении с различными типами данных и структурами.Отличия от if/elif/else:
match/case более специализирован для сопоставления формы и структуры данных, тогда как if/elif/else используется для проверки условий на основе значений или выражений. match/case предоставляет более компактный и семантически более подходящий способ для сценариев, где требуется выполнить различные действия в зависимости от типа или структуры входных данных.