switch/case statements

Youngjae·2020년 10월 13일

Python

목록 보기
8/8
# Because Python has first-class functions they can
# be used to emulate switch/case statements

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)()


print(f"{dispatch_if('mul', 2, 8)=}")
print(f"{dispatch_dict('mul', 2, 8)=}")
print(f"{dispatch_if('unknown', 2, 8)=}")
print(f"{dispatch_dict('unknown', 2, 8)=}")

exectue

dispatch_if('mul', 2, 8)=16
dispatch_dict('mul', 2, 8)=16
dispatch_if('unknown', 2, 8)=None
dispatch_dict('unknown', 2, 8)=None
profile
Eighty percent of success is showing up.

0개의 댓글