Dieser Artikel bietet Ihnen eine Einführung in die Verwendung und den Unterschied zwischen nicht lokal und global in Python3 (mit Beispielen). Ich hoffe, dass er für Sie hilfreich ist.
Schlüsselwort nonlocal
In Python 2.x können Abschlüsse nur die Variablen der externen Funktion lesen, diese aber nicht überschreiben. Um dieses Problem zu lösen, hat Python 3.x das Schlüsselwort nonlocal eingeführt. Durch die Deklaration von Variablen mit nonlocal innerhalb des Abschlusses kann der Interpreter den Variablennamen in der äußeren Funktion finden.
Hinweis: Das Schlüsselwort nonlocal: erscheint im globalen Bereich und im lokalen Bereich. Der globale Bereich bezieht sich auf den Bereich des Moduls, in dem sich der aktuelle Code befindet, und der lokale Bereich bezieht sich auf den Bereich der aktuellen Funktion oder Methode. Code im lokalen Bereich kann Variablen im externen Bereich (einschließlich des globalen Bereichs) lesen, diese jedoch nicht ändern. Wenn Sie es ändern möchten, müssen Sie hier das Schlüsselwort global verwenden.
Schauen Sie sich zwei Beispiele an
Beispiel 1name = 'pythontab' def func() global name name = 'pythontab.com' func() print(name)
pythontab.com
Beispiel 2
def func(): name = 'pythontab' def foo(): nonlocal name name = 'pythontab.com' foo() print(name) func()
pythontab.com
Beachten Sie, dass in Beispiel 2 das globale Schlüsselwort nicht verwendet wurde, um den Wert von name zu ändern.
Die Funktionen der beiden sind unterschiedlich. Nach dem Ändern einer Variablen mit dem Schlüsselwort „global“ wird die Variable als globale Variable identifiziert. Durch das Ändern der Variablen mit dem Schlüsselwort „nonlocal“ wird die Variable als lokale Variable in der übergeordneten Funktion identifiziert. Wenn in der Funktion der oberen Ebene keine lokale Variable vorhanden ist und diese lokale Variable vorhanden ist, tritt an der nichtlokalen Position ein Fehler auf (die Funktion der obersten Ebene, die nichtlokale geänderte Variablen verwendet, meldet definitiv einen Fehler).
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung und Unterschiede von nichtlokal und global in Python3 (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!