Heim >Backend-Entwicklung >Python-Tutorial >LEGB-Reihenfolge der Python-Funktionsbereiche
In diesem Artikel wird die Suchreihenfolge des Python-Funktionsbereichs als Referenz vorgestellt. Der spezifische Inhalt lautet wie folgt:
1 Was ist LEGB?
L:interner Umfang der lokalen Funktion
E:interner Umfang der umschließenden Funktion und eingebettete Funktion
G:globaler globaler Bereich
B:eingebauter integrierter Bereich
2.Wofür wird LEGB verwendet?
Warum müssen wir das einführen? usw. Wie findet Python sie? Und in welcher Reihenfolge sucht Python? Hier ist eine Erklärung der Reihenfolge
3. Wie ist die Reihenfolge? Genau wie der Name ist Pythons Suche in Funktionen in 4 Typen unterteilt, die LEGB genannt werden, was genau ist entsprechend der Suche in dieser Reihenfolge.
Dann wird es umschlossen und dann zwischen dem Inneren der Funktion und der eingebetteten Funktion gesucht (bezieht sich auf die erneute Definition einer Funktion innerhalb der Funktion)
Zweitens ist es global, suchen Sie nach global
und schließlich eingebaut, eingebauter Bereich
4. Beispiel
ex1
passline = 60 def func(val): if val >= passline: print('pass') else: print('failed') func(89) '''''''''''' pass [Finished in 0.2s] ''''''''''''Die Python-Funktion sucht zunächst nach „lokal“. Es gibt keine Definition der Passline im lokalen Variablenbereich Es gibt keine eingebettete Funktion in der Funktion. Zu diesem Zeitpunkt beginnt Python, nach der globalen Definition von passline zu suchen.
ex2
def Max(val1, val2): return max(val1, val2) print(Max(90, 100)) ''''''''' 100 [Finished in 0.1s] '''''''''Die Max-Funktion ruft direkt eine andere auf Funktion mit dem Namen max() (beachten Sie, dass die Groß- und Kleinschreibung der beiden Funktionen unterschiedlich ist). Diese Funktion wurde nicht definiert, gehört jedoch zum vierten Typ, den wir oben erwähnt haben, und gehört zur integrierten Funktion, bei der es sich um eine Funktion handelt in der Python-Standardbibliothek integriert und kann direkt aufgerufen werden. Der letzte Schritt besteht darin, hier zu finden Beim zweiten Typ handelt es sich um eine eingebettete Funktion. Auch wenn eine Funktion innerhalb der Funktion erneut definiert wird, wird zunächst geprüft, ob in der lokalen Funktion eine Definition vorhanden ist. und dann schauen Sie sich die Funktion an. Gibt es eine Definition für diesen Typ, der „Closure“ genannt wird? Ich hoffe, Sie werden ihn lesen. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere Artikel zur LEGB-Reihenfolge des Python-Funktionsumfangs finden Sie auf der chinesischen PHP-Website!