Globale und lokale Variablen:

Variablen, die auf Ebene eines Modules definiert sind, sind globale Variablen

Dagegen sind Variablen, die innerhalb einer Funktion definiert sind, per default lokale Variablen

Alternativ kann man innerhalb einer Funktion Variablen als global deklarieren, dann haben sie globale Gültigkeit und Lebensdauer, sobald die Funktion einmal gerufen wurde.


def getx():
    print('x in getx = ', x) # global x

def setx1(a):
    x=a # local x
    print('x in setx1 = ', x)
    y1=111

def setx2(a):
    global x, y2 # global x, y2
    x=a
    print('x in setx2 = ', x)
    y2 = 222
    
x=5
getx()

setx1(11)
print('x after setx1 = ', x)

print(y2) # Error: y2 global, but not yet defined since setx2 not called
setx2(22)
print('x after setx2 = ', x)
#
print(y1) # error only local in setx1, not known outside
print(y2) # ok now