English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie Python-globale Variablen, lokale Variablen, nicht-lokale Variablen und ihre Verwendungsorte kennenlernen.
In Python werden Variablen, die außerhalb oder im globalen Bereich erklärt werden, als globale Variablen bezeichnet. Dies bedeutet, dass globale Variablen sowohl im Inneren als auch im Äußeren der Funktion erreicht werden können.
Lassen Sie uns ein Beispiel sehen, wie man in Python globale Variablen erstellt.
x = "global" def foo(): print("内部 x:", x) foo() print("外部 x:", x)
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
内部 x: global 外部 x: global
Im obigen Code erklären wirx作为全局变量创建,并定义了foo()来打印全局变量x。最后,我们调用foo()将打印xwert ändern möchten
Wenn Sie innerhalb einer Funktionx的值怎么办?
x = "global" def foo(): x = x * 2 print(x) foo()
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
UnboundLocalError: local variable 'x' referenced before assignment
Die Ausgabe zeigt einen Fehler, weil Python x als lokale Variable ansieht und x auch nicht in foo() definiert ist.
Um diese Funktion zu erreichen, haben wir den globalen Schlüsselwort verwendet. Für weitere Informationen besuchen Sie bittePython全局关键字。
Variablen, die im Funktionskörper oder im lokalen Bereich erklärt werden, werden als lokale Variablen bezeichnet.
def foo(): y = "local" foo() print(y)
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
NameError: name 'y' is not defined
Die Ausgabe zeigt einen Fehler, weil wir versucht haben, eine lokale Variable y im globalen Bereich zu verwenden, und lokale Variablen arbeiten nur in foo() oder im lokalen Bereich.
Lasst uns einen Beispiel sehen, wie man lokale Variablen in Python erstellt.
Normalerweise erklären wir eine Variable im Funktionskörper, um eine lokale Variable zu erstellen.
def foo(): y = "local" print(y) foo()
Wenn wir den Code ausführen, wird es ausgeben:
local
Lasst uns看一下前面的问题,其中xist eine globale Variable, die wir innerhalb von foo() ändern möchtenx。
Hier zeigen wir Ihnen, wie Sie globale und lokale Variablen in einem Code verwenden können.
x = "global" def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
global global local
Im obigen Code erklären wir x als globale Variable und y als lokale Variable in foo(). Dann verwenden wir den Multiplikationsoperator*Ändern Sie die globale Variable x und geben Sie x und y gleichzeitig aus.
Nach dem Aufruf von foo() wird der Wert von x in "global global" geändert, weil wir x verwendet haben * 2Um global zweimal zu drucken. Dann drucken wir den Wert der lokalen Variable y, d.h. der lokalen Variable.
x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
local x: 10 global x: 5
Im obigen Code haben wir den gleichen Namen x für globale und lokale Variablen verwendet. Wenn wir den gleichen Variablenwert drucken, erhalten wir unterschiedliche Ergebnisse, weil die Variable in zwei Bereichen deklariert ist, nämlich im lokalen Bereich von foo() und im globalen Bereich außerhalb von foo().
Wenn wir die Variable in foo() drucken, wird sie "local x:" ausgeben. 10. Dies wird als der lokale Bereich der Variable bezeichnet.
Genauso, wenn wir die Variable außerhalb von foo() drucken, wird sie "global x:" ausgeben. 5. Dies wird als der globale Bereich der Variable bezeichnet.
Nicht-lokale Variablen werden für eingebettete Funktionen mit undefiniertem lokalem Bereich verwendet. Dies bedeutet, dass die Variable weder im lokalen noch im globalen Bereich liegen kann.
Lassen Sie uns ein Beispiel sehen, wie man in Python globale Variablen erstellt.
Wir erstellen eine nicht-lokale Variable mit dem Schlüsselwort nonlocal.
def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()
Wenn wir den Code ausführen, wird die folgende Ausgabe erfolgen:
inner: nonlocal outer: nonlocal
Im obigen Code gibt es eine eingebettete Funktion inner(). Wir erstellen eine nicht-lokale Variable mit dem Schlüsselwort nonlocal. Die Funktion inner() ist im Bereich der Funktion external() definiert.
HinweisWenn wir den Wert eines nicht-lokalen Variablen ändern, werden diese Änderungen im lokalen Variablenbereich erscheinen.