Как реализовать switch-case в Python. Простой лайфхак
Конструкция switch-case используется в различных языках программирования в случае множественного выбора. Одна из альтернатив этой инструкции — условные операторы if-else. И при множественном выборе конструкция таких операторов может иметь значительные размеры.
Более лаконичной альтернативой конструкции switch-case в языке программирования Python могут быть словари. Выглядит это примерно так:
multiple_list = {
«a»: 1,
«b»: 2,
«c»: 3
}
print(multiple_list[«b»])
Данный пример выведет на экран цифру 3. Что соответствует значению ключа «b».
Плюсом такого подхода также можно отметить легкость дополнения выбора. Для этого нужно лишь дописать строчку в словарь.
Недостаток такого подхода — отсутствия блока default. То есть не обрабатывается ситуация, когда нет подходящего значения. И если используется отсутcтвующий ключ, вызывается исключение KeyError.
Мы можем дополнить наш код, добавив обработку исключения с помощью Python инструкции try-except:
multiple_list = {
«a»: 1,
«b»: 2,
«c»: 3
}
try:
print(multiple_list[«fff»])
except KeyError:
print(«Error»)
В этом примере используется ключ «fff». А значит, генерируется исключение и на экран будет выведено наше сообщение об ошибке.
Выбор функций
И в дополнение. Словари можно использовать для выбора функции, для последующего вызова. Для этого к ключу нужно добавить круглые скобки:
def function_1():
print («a»)
def function_2():
print («b»)
def function_3():
print («c»)
function_list = {
«a»: function_1,
«b»: function_2,
«c»: function_3
}
function_list[«b»]()
Данный код вызовет функцию function_2(), соответствующую ключу «b».