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

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

Tomorin
Freigeben: 2018-08-17 17:54:45
Original
7050 Leute haben es durchsucht

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]
Nach dem Login kopieren

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

def f(x):
    return x * x
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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();
Nach dem Login kopieren


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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage