Computers

Globale und lokale Variablen Python

Autor: Peter Berry
Erstelldatum: 15 Juli 2021
Aktualisierungsdatum: 15 November 2024
Anonim
Was bedeutet GLOBAL? 🤔 | Globale Variablen in #Python | Tutorial für Anfängerinnen (Deutsch)
Video: Was bedeutet GLOBAL? 🤔 | Globale Variablen in #Python | Tutorial für Anfängerinnen (Deutsch)

Inhalt

Ich bin ein Softwareentwickler mit großem Interesse an Datenanalyse und Statistik.

Globale Variablen sind solche Variablen die außerhalb eines Funktionsumfangs deklariert sind, aber in einer Funktion verwendet werden können. Um eine globale Variable zu deklarieren und zu verwenden, können wir das Schlüsselwort "global" vor dem Variablennamen verwenden.

Versuchen wir, das Konzept anhand einiger Beispiele besser zu verstehen.

Variable innerhalb der Funktion definiert und außerhalb verwendet

Betrachten Sie den folgenden Code.

#! / usr / bin / python3 def myFunct (): a = 20 print (a) myFunct () print (a)

Der Code führt zu einem NameError, da die Variable a nur für die Funktion myFunct sichtbar ist. Der Druck (a) gegen Ende des Programms schlägt fehl, da das Programm davon ausgeht, dass die Variable noch nicht definiert wurde. Dies liegt daran, dass die Variable "a" lokal für die Funktion mit dem Namen myFunct () ist.


Die Ausgabe des obigen Programms lautet: Traceback (letzter Aufruf zuletzt): 20 Datei "G: workspaces py_ws MyProj org pythontutorials globalvslocal globalAndLocal.py", Zeile 13, in gedruckter Form (a) NameError: name 'a' ist nicht definiert

Wir können myFunct () ein globales a hinzufügen, bevor wir den Wert festlegen und drucken, damit der Code funktioniert. Betrachten Sie den erweiterten Code unten:

#! / usr / bin / python3 def myFunct (): global aa = 20 print ("Innerhalb von myfunct (): a =", a) myFunct () print ("Wert eines nach dem ersten Aufruf von myFunct: a =", a) a = 10 print ("Nach dem Festlegen eines neuen Werts außerhalb von myFunct: a =", a) myFunct () print ("Nach dem zweiten Aufruf von myFunct: a =", a)

Der obige Code wird wie folgt ausgegeben:

Innerhalb von myfunct (): a = 20 Wert von a nach dem ersten Aufruf von myFunct: a = 20 Nach dem Festlegen eines neuen Werts außerhalb von myFunct: a = 10 Innerhalb von myfunct (): a = 20 Nach dem zweiten Aufruf von myFunct: a = 20

Variable außerhalb definierte Funktion und innerhalb verwendet

Betrachten wir ein anderes Beispiel:


#! / usr / bin / python3 def callMe (): print (msg) msg ​​= "Called" msg = "Calling ..." callMe () print (msg)

Was passiert, wenn wir den Code ausführen? Wird es erfolgreich laufen?
Die Ausgabe des obigen Codes sieht folgendermaßen aus:

Traceback (letzter Aufruf zuletzt): Datei "G: workspaces py_ws MyProj org pythontutorials globalvslocal scopedOutside.py", Zeile 12, in callMe () Datei "G: workspaces py_ws MyProj org pythontutorials globalvslocal scopedOutside.py ", Zeile 8, in callMe print (s) UnboundLocalError: Lokale Variable 'msg', auf die vor der Zuweisung verwiesen wird

Wenn wir den Code genau untersuchen, können wir sehen, dass der Variablen msg der Wert "Calling" außerhalb der Funktion callMe zugewiesen wird. Dann wird callMe () aufgerufen. Obwohl msg vor dem Aufruf außerhalb der Funktion deklariert wird, geht Python davon aus, dass wir aufgrund der Zuweisung zu msg innerhalb von callMe () eine lokale Variable möchten, sodass die print-Anweisung diese Fehlermeldung auslöst.

Normalerweise eine Variable, die innerhalb von verwendet wird eine Funktion wird als lokale Variable angesehen, wenn sie nicht als globale Variable deklariert wurde.


Um den Fehler zu beheben, müssen wir den Code wie folgt ändern:

#! / usr / bin / python3 def callMe (): globaler Nachrichtendruck (msg) msg ​​= "Called" msg = "Calling ..." callMe () print (msg)

Jetzt sollten "Anrufen" und "Angerufen" wie vorgesehen in zwei separaten Zeilen gedruckt werden. Die Ausgabe für das obige Programm ist wie folgt:

Anrufen ... Angerufen

Variablen in verschachtelten Funktionen

Es ist möglich, eine Funktion innerhalb einer anderen Funktion zu definieren. Solche Funktionen werden als verschachtelte Funktionen bezeichnet.

Betrachten Sie den folgenden Code:

#! / usr / bin / python3 def äußere (): x = 10 def innere (): globale xx = 2 print ("Vor dem Aufruf von inner (): x =", x) print ("Aufruf von inner () jetzt .. . ") inner () print (" Nach dem Aufruf von inner (): x = ", x) äußere () print (" x in main: "+ str (x))

Die Ausgabe des obigen Codes lautet:

Vor dem Aufruf von inner (): x = 10 Jetzt inner () aufrufen ... Nach dem Aufruf von inner (): x = 10 x in main: 2

Im obigen Programm wird der Wert von x in der Funktion Outer () als 10 beibehalten, unabhängig davon, was Inner () mit der Variablen macht. Nach dem Aufruf von inner () existiert eine globale Variable mit dem Wert 2. Da Outer () wiederum inner () aufruft, gibt die print-Anweisung in main den Wert aus, der einer globalen Variablen von inner () zugewiesen wurde.

Interessante Publikationen.

Artikel Des Portals

Installieren der Oracle VM VirtualBox auf einem USB-Laufwerk
Computers

Installieren der Oracle VM VirtualBox auf einem USB-Laufwerk

Jeremiah i t ein Jr. Network Admini trator, der ich mit allen techni chen Dingen und angrenzenden Dingen be chäftigt, ein chließlich auberer Energie und par amer Auto .VirtualBox i t ein gro...
Überprüfung und Einrichtung von AirTV und Sling TV
Computers

Überprüfung und Einrichtung von AirTV und Sling TV

Eric i t immer auf der uche nach kreativen Produkten und Ideen, die da Leben verbe ern und vielleicht ogar helfen, ein wenig Geld zu paren.Vor einiger Zeit ent chieden meine Frau und ich, da wir mit u...