Globale Variablen sind außerhalb jedweder Funktion definiert und daher überall im Quellcode zugreifbar:


1  
2
def funktion():          # Definition einer Funktion
    print(globVar)       # Ausgabe der globalen Variable (und Ende der Funktionsdefinition)


Wird eine Variable außerhalb einer Funktion definiert, so ist sie global (überall) lesbar.

3  
4
5
globVar = "bin eine globale Variable"     # Definition einer globalen Variable   
funktion()               # Aufruf der Funktion
print(globVar)           # Ausgabe der globalen Variable


Der Inhalt von globVar wird zweimal ausgegeben. Einmal aus der Funktion heraus und ein zweites Mal nach dem Funktionsaufruf:

bin eine globale Variable
bin eine globale Variable


Sonderfall: Schreibzugriff


var = "foo"
def funktion():               
    var = "bar"
    print(var)            

funktion()            
print(var)


Warum verwendet man nicht einfach nur globale Variablen. Man bräuchte dann keine Funktionsparameter?

  1. Bei größeren Programmen verliert man wegen tausender globaler Variablen leicht die Übersicht und benutzt eventuell Variablen, die man für andere Dinge bereits einsetzt.
  2. Globale Variablen benötigen für die gesamte Laufzeit des Programms Arbeitsspeicher, auch wenn diese schon längst nicht mehr benutzt werden. Der Speicher lokaler Variablen wird nach Ablauf der Funktion dagegen wieder freigegeben.

Man vermeidet daher normalerweise globale Variablen. Bei sehr laufzeitkritischen Systemen (Echtzeitsystemen) kann es allerdings sinnvoll sein, globale Variablen zu verwenden, denn man vermeidet zeitintensives Kopieren von Werten bei der Parameterübergabe.

 

Last modified: Friday, 30 June 2023, 12:58 PM