Wenn in Python auf eine Variable verwiesen wird, besteht die Suche nach dieser Variablen darin, den lokalen Bereich (lokal), den verschachtelten Bereich (einschließende Funktionslokale) und den globalen Bereich (global) zu finden. , eingebauter Bereich (Builtins-Modul) in der Reihenfolge, die sogenannten LEGB-Regeln. Das heißt, die Reihenfolge, in der Python auf Variablen verweist: lokale Variablen des aktuellen Bereichs -> Variablen des äußeren Bereichs -> globale Variablen im aktuellen Modul -> integrierte Python-Variablen.
Bei der Zuweisung eines Werts zu einer Variablen innerhalb einer Funktion werden jedoch nicht die oben genannten LEGB-Regeln befolgt, um zuerst die Variable zu finden und ihr dann einen Wert zuzuweisen. In Python gilt beim Zuweisen eines Werts zu einer Variablen in einer Funktion die folgende Regel: „Beim Zuweisen eines Werts zu einem Variablennamen in einer Funktion (anstatt darauf in einem Ausdruck zu verweisen) erstellt oder ändert Python immer den Variablennamen.“ des lokalen Gültigkeitsbereichs, es sei denn, sie wurde in dieser Funktion als globale Variable deklariert Wird verwendet, um globale Variablen in Funktionen oder anderen lokalen Bereichen zu verwenden.
gcount = 0 #定义了一个全局变量,(可以省略global关键字) def global_test(): print (gcount) #不修改,只是引用全局变量,不使用global关键字 def global_counter(): global gcount gcount +=1 #修改全局变量,需要使用global关键字 return gcount
1
2
3
Bei Verwendung wird ein nicht lokales Schlüsselwort verwendet äußere (nicht globale) Variablen in Funktionen oder anderen Bereichen.
def make_counter(): count = 0 #定义一个局部变量,该局部变量作用范围在make_counter()方法内 def counter(): nonlocal count #在方法counter()中使用外层局部变量 count count += 1 return count return counter def make_counter_test(): mc = make_counter() print(mc()) print(mc()) print(mc()) make_counter_test()
Ausgabe
3Das obige ist der detaillierte Inhalt vonSo verwenden Sie globale Variablen in Python, wo keine globalen Variablen erstellt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!