Pythons LEGB-Regel: Scoping-Regeln entmystifizieren
Pythons Scoping-Regeln, die oft für Verwirrung sorgen, können anhand der LEGB-Regel leicht verstanden werden.
LEGB Regel
Die LEGB-Regel bietet einen klaren Algorithmus zur Bestimmung der Verfügbarkeit von Variablen innerhalb eines bestimmten Bereichs:
-
L (Lokal):Variablen definiert innerhalb einer Funktion oder eines Lambda-Ausdrucks.
-
E (Einschließende Funktion):Variablen definiert in umschließende Funktionen von innen nach außen.
-
G (Global):Variablen, die auf Modulebene definiert oder innerhalb einer Funktion global deklariert werden.
-
B (Erstellt -in): Vorab zugewiesene Variablen aus Pythons integrierten Namen Modul.
Beispiel
Betrachten Sie den folgenden Code:
class Foo:
def spam():
for var in []:
x()
Mithilfe der LEGB-Regel können wir den Umfang des Moduls bestimmen Variable x:
-
L: Keine. x ist nicht lokal innerhalb der Spam-Funktion definiert.
-
E: Keine. Die Spam-Funktion ist nicht in eine andere Funktion eingebettet.
-
G: Ja. Wenn x auf Modulebene definiert ist, ist es innerhalb der Spam-Funktion verfügbar.
-
B: Ja. Wenn x eine integrierte Variable ist (z. B. eine Python-Funktion), ist sie zugänglich.
In diesem Beispiel würde x gefunden, wenn es auf Modulebene definiert wäre oder ein Python ist eingebaut.
Das obige ist der detaillierte Inhalt vonWie bestimmt die LEGB-Regel von Python den Variablenbereich?. 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