Python Language Utilisez un dicton de fonctions


Exemple

Un autre moyen simple consiste à créer un dictionnaire de fonctions:

switch = {
    1: lambda: 'one',
    2: lambda: 'two',
    42: lambda: 'the answer of life the universe and everything',
}

puis vous ajoutez une fonction par défaut:

def default_case():
    raise Exception('No case found!')

et vous utilisez la méthode get du dictionnaire pour obtenir la fonction donnée la valeur pour vérifier et l'exécuter. Si value n'existe pas dans le dictionnaire, default_case est exécuté.

>>> switch.get(1, default_case)()
one
>>> switch.get(2, default_case)()
two
>>> switch.get(3, default_case)()
…
Exception: No case found!
>>> switch.get(42, default_case)()
the answer of life the universe and everything

vous pouvez aussi faire du sucre syntaxique pour que le commutateur soit plus joli:

def run_switch(value):
    return switch.get(value, default_case)()

>>> run_switch(1)
one