2013-03-21 16 views

Antwort

2

Da Python eine großartige Sprache mit funktionalen Funktionen ist, können Sie mit lambdas nützliche Funktionen ausführen. Ihr Beispiel ist äquivalent zu

if x == 6: 
    return 10 
else: 
    return 1 

lambda Funktionen sind nützlich, wenn Sie eine einfache Funktion als Argument an eine andere Funktion irgendwo im Code übergeben müssen.

+2

Nun, "Python ist eine funktionale Sprache" ist ein bisschen eine Strecke. Es ist mehr eine imperative Sprache mit funktionalen Eigenschaften. – Gene

+0

Genügend Funktionen in anderen Paradigmen, die man "Multi-Paradigma" nennen kann; wie fast alle gängigen Sprachen. – marr75

+0

Danke. Das hilft wirklich. – user2195823

14
some_function = lambda x: 10 if x == 6 else 1 

ist syntaktischer Zucker für:

def some_function(x): 
    return 10 if x == 6 else 1 

Was bedeutet, dass es 10, wenn x == 6 wertet True zurück und 1 sonst zurück.

Persönlich bevorzuge ich die def Form in allen außer den einfachsten Fällen, da es mehrzeilige Funktionen erlaubt, macht es klarer, welche Art von Overhead mit dem Aufrufen der aufrufbaren beteiligt ist, macht die Analyse der Schließung der Funktion einfacher, und öffnet den Geist des neuen Python-Programmierers für andere, komplexere Code-Objekte (wie Klassen), die ebenso zur Laufzeit konstruiert werden können.

+0

Vielen Dank. Das macht absoluten Sinn. – user2195823

+0

Kein Problem! Und willkommen in SO! Wir hoffen, dass Sie bei der Programmierung und rund um StackOverflow bleiben! Denken Sie daran, eine dieser Antworten zu akzeptieren, die hilfreich waren, indem Sie auf das Häkchen klicken. Wenn Sie vorhaben, SO weiterhin zu nutzen, wird dies zu Ihrem Ruf als "Fragesteller" beitragen. – marr75

Verwandte Themen