Utiliser un dictionnaire pour réaliser un switch case
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)