Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Verwendung und Unterschiede von nichtlokal und global in Python3 (mit Beispielen)

Einführung in die Verwendung und Unterschiede von nichtlokal und global in Python3 (mit Beispielen)

不言
不言nach vorne
2019-03-07 17:23:093987Durchsuche

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.

Beispiel

Die Funktion des Schlüsselworts nonlocal ähnelt der des Schlüsselworts global. Sie können es mit dem Schlüsselwort nonlocal ändern in einer verschachtelten Funktion Variablen in verschachtelten Bereichen.

Schauen Sie sich zwei Beispiele an

Beispiel 1

name = 'pythontab'
def func()
global name
name = 'pythontab.com'
func()
print(name)

Ergebnis:

pythontab.com

Beispiel 2

def func():
name = 'pythontab'
def foo():
    nonlocal name
    name = 'pythontab.com'
foo()
print(name)
func()

Ergebnis:

pythontab.com

Beachten Sie, dass in Beispiel 2 das globale Schlüsselwort nicht verwendet wurde, um den Wert von name zu ändern.

Zusammenfassung

Die Hauptunterschiede sind wie folgt:

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).

    Der Anwendungsbereich der beiden ist unterschiedlich. Das globale Schlüsselwort kann überall verwendet werden, einschließlich der Funktion der obersten Ebene und verschachtelter Funktionen. Auch wenn die Variable zuvor nicht definiert wurde, kann sie direkt nach der globalen Änderung verwendet werden, während das nicht lokale Schlüsselwort nur in verschachtelten Funktionen verwendet werden kann außerhalb In der Layer-Funktion werden entsprechende lokale Variablen definiert, sonst kommt es zu einem Fehler (siehe 1)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen