Contrairement à d’autres langages de programmation, Python ne permet pas de faire des switch case. L’alternative naïve est de faire des if...elif...else. Une autre alternative plus idiomatique est d’utiliser les fonctions comme des objets et d’utiliser des dictionnaires.


Anti-pattern (Pas bien!)

def apply_operator(var_1, var_2, operator):
    if operator == '+':
        return var_1 + var_2
    elif operator == '*':
        return var_1 * var_2
    elif operator == '/':
        return var_1 / var_2
    elif operator == '-':
        return var_1 - var_2

Bonne pratique (Bien!)

import operator as op

def apply_operator(var_1, var_2, operator):
    operator_map = {
        '+': op.add,
        '*': op.mul,
        '/': op.truediv,
        '-': op.sub,
    }
    return operator_map[operator](var_1, var_2)