Das nonlocal-Schlüsselwort in Python

Vaibhhav Khetarpal 17 Juli 2022
Das nonlocal-Schlüsselwort in Python

Das Schlüsselwort nonlocal wird verwendet, um den Gültigkeitsbereich einer bestimmten Variablen festzulegen. Es wird hauptsächlich in Fällen verwendet, in denen eine Verschachtelung in einem Programm auftritt.

In diesem Tutorial werden wir das Schlüsselwort nonlocal in Python diskutieren.

Das Schlüsselwort nonlocal hat, wenn es verwendet wird, einen ganz anderen Geltungsbereich als die allgemeine Variable global oder local. Das Schlüsselwort nonlocal wird verwendet, um Variablen unter verschachtelten Funktionen zu bearbeiten. In diesem Fall muss auf den Gültigkeitsbereich der angegebenen Variablen in der äußeren Funktion zugegriffen werden.

Die Funktion nonlocal zeigt an, dass die angegebene Variable, die bearbeitet wird, nicht lokal zu der angegebenen verschachtelten Funktion gehört. Dies bedeutet jedoch nicht, dass die mit dem Schlüsselwort nonlocal angegebene Variable eine globale Variable ist. Sowohl nichtlokal als auch global sind unterschiedlich und funktionieren unterschiedlich.

Der folgende Code verwendet die Variable nonlocal in Python.

a = 0


def outr():
    a = 1

    def innr():
        nonlocal a
        a = 2
        print("inner variable value:", a)

    innr()
    print("outer variable value:", a)


outr()
print("global variable value:", a)

Der obige Code liefert die folgende Ausgabe:

inner variable value: 2
outer variable value: 2
global variable value: 0

Der obige Code erklärt, wie das Schlüsselwort nonlocal in Python verwendet wird. Es bietet einen faszinierenden Einblick, wie sich das Keyword nonlocal vom Keyword global unterscheidet.

Das Schlüsselwort nonlocal bindet die gegebenen Variablen ausserhalb des lokalen Gültigkeitsbereichs neu, deckt jedoch nicht vollständig den globalen Gültigkeitsbereich ab oder bindet ihn erneut.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn