Heim > Artikel > Backend-Entwicklung > Python unterstützt das Instanzparsen von Rückgabefunktionen
In diesem Artikel wird hauptsächlich die Analyse von Beispielen für von Python unterstützte Rückgabefunktionen vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf.
Ich bin kürzlich mit Python in Kontakt gekommen und habe das Konzept der Rückgabe von Funktionen in Python gesehen. Bisher war ich nur mit Funktionsrückgabewerten konfrontiert , Python kann int, str, list, dict zurückgeben. Ich möchte hier sagen, dass Python auch Rückgabefunktionen unterstützt.
Sehen Sie sich zunächst die grundlegende Syntax von Python an, die Rückgabefunktionen unterstützt
def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g
Hier gibt die äußerste Funktion f eine Funktion g zurück, die die Funktion g selbst ist
Schauen Sie sich an Schauen Sie sich unten den Prozess des Funktionsaufrufs an. (Fortsetzung von oben)
>>> x = f() # 调用f()call f()...>>> x # 变量x就是上面一个最外层函数返回的函数(不是函数值)<function g at 0x1037bf320> >>> x() # x指向函数,因此可以调用,这里就是调用内层函数x()的过程call g()... # 调用x()就是执行g()函数定义的代码
Gibt nur die Funktion zurück:
Die zurückgegebene Funktion kann die Ausführung einiger Berechnungen verzögern. Wenn Sie beispielsweise eine normale Summenfunktion definieren:
def calc_sum(lst): return sum(lst) >>>calc_sum([1,2,3,4])
, lautet das Ergebnis direkt: 10
Sie können jedoch Code schreiben, indem Sie Funktionsideen zurückgeben kann „Verzögerte Berechnung“
def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum
Der folgende Aufruf lautet:
Beachten Sie, dass der folgende Code die Funktion zur Berechnung des Ergebnisses nicht ausführt, sondern die Funktion zurückgibt.
>>> f = calc_sum([1, 2, 3, 4]) >>> f <function lazy_sum at 0x1037bfaa0>
Das Ergebnis wird berechnet, wenn die zurückgegebene Funktion aufgerufen wird
>>>f()10
Das Folgende ist ein Beispiel:
Bitte schreiben Sie eine Funktion calc_prod(lst), die eine Liste empfängt , gibt eine Funktion zurück, die das Produkt von Parametern berechnen kann.
Idee: Definieren Sie zunächst eine Funktion, die das Produkt berechnen kann, und geben Sie dann diese Funktion zurück.
def calc_prod(lst): def lazy_prod(): def f(x,y): return x*y return reduce(f,lst,1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f()
& 🎜>Mehrere Situationen zu Funktionsrückgabewerten
Das obige ist der detaillierte Inhalt vonPython unterstützt das Instanzparsen von Rückgabefunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!