Найти в Дзене
Удалёнка

Симуляция предложений switch/case при помощи словарей

Поскольку в Python функции являются объектами первого класса, они могут использоваться для симуляции предложений switch/case.

Пример:

def dispatch_if(operator, x, y):

if operator == 'add':

return x + y

elif operator == 'sub':

return x - y

elif operator == 'mul':

return x * y

elif operator == 'div':

return x / y

else:

return None

def dispatch_dict(operator, x, y):

return {

'add': lambda: x + y,

'sub': lambda: x - y,

'mul': lambda: x * y,

'div': lambda: x / y,

}.get(operator, lambda: None)()

>>> dispatch_if('mul', 2, 8)

16

>>> dispatch_dict('mul', 2, 8)

16

>>> dispatch_if('unknown', 2, 8)

None

>>> dispatch_dict('unknown', 2, 8)

None