Sie können nicht zwei return-Anweisungen in einer Funktion. Sobald die erste aufgerufen wird, wird die zweite nicht erreicht, da die Funktion bereits zurückgegeben wurde. Sie könnten jedoch eine tuple verwenden, um die Ausgabe zu organisieren, die so aussehen würde.
def compose(f,g):
return (lambda f: f + 1, lambda g: g)
Seien Sie aber vorsichtig, weil diese die tatsächlichen lambdas zurückkehren wird, wie das folgende Beispiel zeigt:
In [7]: def func(f, g):
...: return (lambda f: f + 1, lambda g: g)
...:
In [8]: func(0, 0)
Out[8]: (<function __main__.<lambda>>, <function __main__.<lambda>>)
Beachten Sie die Arten von Linie zeigt [8]. Das bedeutet, dass die Variablen, zu denen die Funktion zurückkehrt, die tatsächlichen Funktionen sind, keine Zahlen. Um eine Zahl zurückzugeben, verwenden Sie keine Lambdas, sondern berechnen Sie die Zahlen normal.
Es ist auch erwähnenswert, dass die Parameter keinen Einfluss auf diese Funktion haben.
Es gibt keinen Fehler. Es gibt das erste Lambda zurück, das seine Eingabe um 1 erhöht. Was genau wollen Sie erreichen? – prashkr
die Anforderung ist Rückkehr 2 Funktionen, es fehlschlägt Tests wo Reihenfolge angegeben ist – Conor
Wie wäre es 'zurück (Lambda f: f + 1, Lambda g: g)' und Zugriff mit ihren entsprechenden Indizes? – prashkr