Nichtlokales Python-Schlüsselwort
Das Python-Schlüsselwort nonlocal wird verwendet, um die Variable zu erstellen, die sich auf die Variable bezieht, die im nächsten Bereich begrenzt ist. Der Geltungsbereich, an den die Variable gebunden ist, sollte weder global noch lokal sein. In Python folgt die nichtlokale Variable einem anderen Verhalten als die identische Bindung. Sie sucht nach Variablen in einem anderen Bereich. Die nichtlokale Variable wird in der verschachtelten Funktion verwendet. Nichtlokale Variable wird beim Deklarieren der Variablen verwendet.
Vorteile von nichtlokal:
- Es hilft beim Zugriff auf die Variable, die sich nicht im selben Bereich befindet.
- Da es eine Variable auf eine andere Variable verweist, macht es die Variable besser wiederverwendbar und spart Speicherplatz für die neue Variable.
Nachteile von nichtlokal:
- Die nichtlokale Variable wird nicht mit der globalen und der lokalen Variablen verwendet.
- Eine nicht lokale Variable wird nicht für eine Variable verwendet, die sich nicht im Verschachtelungsbereich befindet.
Demonstrieren der nichtlokalen Variablen:
Beispiel 1: In diesem Beispiel demonstrieren wir die Arbeit mit nichtlokalen Variablen. Wir erstellen die nonlcoal-Variable und ändern deren Inhalt im verschachtelten Gültigkeitsbereich und beeinflussen den Inhalt der Variablen im oberen Gültigkeitsbereich.
Python3
# Python code to demonstrait # nonlocal keyword # Nested function to demonstrait # nonlocal keyword def geek_func(): # local variable to geek_func geek_name = "geek" # Inner function def geek_func2(): # Declairing nonlocal variable nonlocal geek_name geek_name = 'GeekForGeeks' # Printing our variable print(geek_name) # Calling inner function geek_func2() # Printing local variable print(geek_name) geek_func()
Ausgabe:
GeekForGeeks GeekForGeeks
Beispiel 2: In diesem Beispiel sehen wir, was passiert, wenn wir eine nichtlokale Variable erstellen, um auf die globale Variable zu verweisen.
Python3
# Python code to demonstrait # nonlocal keyword # Nested function to demonstrait # nonlocal keyword # Declairing variable in global scope geek_name = 'geekforgeeks' def geek_func(): # Defining inner function def geek_func2(): # Declairing nonlocal variable nonlocal geek_name geek_name = 'GeekForGeeks' # Printing our variable print(geek_name) # Calling inner function geek_func2() geek_func()
Ausgabe:
SyntaxError: no binding for nonlocal 'geek_name' found
Die mögliche Anwendung für die nichtlokale Variable besteht darin, auf die Variable eines anderen Bereichs zuzugreifen, ohne eine neue Variable zu erstellen, die auf eine Variable verweist, die kürzlich an sie gebunden wurde. Es gibt viele mögliche Anwendungen von nichtlokalen Schlüsselwörtern.
Beispiel 3: In diesem Beispiel sehen wir, auf welche nicht lokale Variable verwiesen wird, wenn wir mehrere verschachtelte Funktionen haben und alle eine Variable mit demselben Namen haben.
Python3
# Python code to demonstrait # nonlocal keyword # Nested function to demonstrait # nonlocal keyword def geek_func(): # local variable to geek_func geek_name = "geekforgeeks" # First Inner function def geek_func1(): geek_name = "GeekforGeeks" # Second Inner function def geek_func2(): # Declairing nonlocal variable nonlocal geek_name geek_name = 'GEEKSFORGEEKS' # Printing our nonlocal variable print(geek_name) # Calling Second inner function geek_func2() # Calling First inner function geek_func1() # Printing local variable to geek_func print(geek_name) geek_func()
Ausgabe:
GEEKSFORGEEKS geekforgeeks