English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python Grundlagen-Tutorial

Python Flusskontrolle

Python Funktion

Python Datentypen

Python Dateioperationen

Python Objekte und Klassen

Python Datum und Zeit

Python fortgeschrittene Kenntnisse

Python Referenzhandbuch

Python Globale, lokale und nichtlokale Variablen

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.

Beispiel1:创建一个全局变量

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.

Beispiel2:访问范围外的局部变量

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.

Beispiel3:创建局部变量

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.

Beispiel4:在同一代码中使用全局变量和局部变量

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.

Beispiel5: Globale und lokale Variablen mit dem gleichen Namen

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 Variable

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.

Beispiel6: Eine nicht-lokale Variable erstellen

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.