[Python] : comment simplifier vos switch case avec la fonction lambda ?

Lambda, un mot qui peut faire peur pour les débutants en python. Pourtant les fonctions anonymes lambda permettent de simplifier le code et de le rendre plus compact. Certe leur lecture nécessite un peu de pratique mais elles réduisent la longueur de vos scripts.

En voici encore un exemple avec le classique switch/case. Python n’est pas équipé d’outils spécifique comme bash, php ou autres… Du coup il faut passer par le classique « If … elseif … else ». C’est dommage et je dirais que c’est presque moche non ?

C’est là que labda le vengeur masqué intervient et va nous réduire et embellir tout cela.

Voyons le cas classique dans un premier temps

def sans_lambda(op, a, b):
    if op == 'addition':
        return a + b
    elif op == 'soustraction':
        return a - b
    elif op == 'multiplication':
        return a * b
    elif op == 'division':
        return a / b
    else:
        return None

Et maintenant avec lambda :

def avec_lambda(op, c, d):
    return {
        'addition': lambda: c + d,
        'soustraction': lambda: c - d,
        'multiplication': lambda: c * d,
        'division': lambda: c / d,
    }.get(op, lambda: None)()

Vous le voyez avec lambda c’est mieux. Une lambda pour chaque cas. On intègre directement cela dans le return.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s