Основы Python
Теория: Оператор Match
Оператор match — это специализированная версия if, которую создали для особых ситуаций. Например, ее нужно использовать там, где есть цепочка if else с проверками на равенство:
У этой составной проверки есть одна отличительная черта: каждая ветка здесь — это проверка значения переменной status. Оператор match позволяет записать этот код короче и выразительнее:
С точки зрения количества элементов match — это сложная конструкция. Она состоит из таких элементов:
- Внешнее описание, в которое входит ключевое слово
match. Это переменная, по значениям которойmatchбудет выбирать поведение - Конструкции
case, внутри которой описывается поведение для разных значений рассматриваемой переменной. Каждыйcaseсоответствуетifв примере выше. При этомcase _— это особая ситуация, которая соответствует веткеelseв условных конструкциях. Как иelse, указыватьcase _необязательно
Внутри match допустим только тот синтаксис, который показан выше. Другими словами, там можно использовать case. А вот внутри каждого case ситуация другая. Здесь можно выполнять любой произвольный код:
Иногда результат, полученный внутри case — это конец выполнения функции, которая содержит match. В таком случае его нужно как-то вернуть наружу. Для решения этой задачи есть два способа:
Первый. Создать переменную перед match, заполнить ее в case и затем в конце вернуть значение этой переменной наружу:
Второй способ проще и короче. Вместо создания переменной при работе с case можно делать обычный возврат из функции:
Оператор match хоть и встречается в коде, но технически всегда можно обойтись без него. Ключевая польза при его использовании в том, что он лучше выражает намерение программиста, когда нужно проверять конкретные значения переменной. Хотя кода и стало физически чуть больше, читать его легче, в отличие от блоков elif.








