Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist eine anonyme Funktion? Welchen Nutzen haben anonyme Python-Funktionen?

Was ist eine anonyme Funktion? Welchen Nutzen haben anonyme Python-Funktionen?

Tomorin
TomorinOriginal
2018-08-17 17:54:456988Durchsuche

Wenn wir eine Funktion übergeben, müssen wir die Funktion manchmal nicht explizit definieren. Es ist bequemer, die anonyme Funktion direkt zu übergeben.

In Python gibt es begrenzte Unterstützung für anonyme Funktionen. Nehmen wir immer noch die Funktion map() als Beispiel: Bei der Berechnung von f(x)=x2 können Sie zusätzlich zur Definition einer Funktion von f(x) auch direkt eine anonyme Funktion übergeben:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

As Aus dem Vergleich ist ersichtlich, dass die anonyme Funktion Lambda x: x * x tatsächlich lautet:

def f(x):
    return x * x

Das Schlüsselwort Lambda repräsentiert eine anonyme Funktion und das x vor dem Doppelpunkt repräsentiert den Funktionsparameter.

Anonyme Funktionen haben eine Einschränkung, das heißt, sie können nur einen Ausdruck haben. Es ist nicht erforderlich, einen Rückgabewert zu schreiben.

Die Verwendung anonymer Funktionen bietet einen Vorteil, da die Funktion keinen Namen hat, sodass Sie sich keine Sorgen über Funktionsnamenkonflikte machen müssen. Darüber hinaus ist die anonyme Funktion auch ein Funktionsobjekt. Sie können die anonyme Funktion auch einer Variablen zuweisen und diese dann zum Aufrufen der Funktion verwenden:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)25

Ebenso können Sie die anonyme Funktion auch als zurückgeben Rückgabewert, wie zum Beispiel:

def build(x, y):
    return lambda: x * x + y * y

Kapselt Details zur Verbesserung der Sicherheit und Steuerbarkeit. Er wird häufig außerhalb von Funktionen im globalen Bereich verwendet, wodurch das Hinzufügen zu vieler Variablen und Funktionen zum globalen Bereich eingeschränkt wird.
Die Verwendung des Bereichs auf Blockebene im globalen Bereich kann das Problem verringern, dass Schließungen Speicher belegen, da kein Verweis auf die anonyme Funktion vorhanden ist und ihre Bereichskette sofort zerstört werden kann, solange die Funktion ausgeführt wird.

Imitiert den (privaten) Bereich auf Blockebene:

function box(){
    for(var i=0;i<5;i++){  //块级作用域(js无)
    }   
     var i //即便重新声明,也不会影响之前的值
    alert(i);//5
 }
box();


Das obige ist der detaillierte Inhalt vonWas ist eine anonyme Funktion? Welchen Nutzen haben anonyme Python-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn