Zum Hauptinhalt springen

Lokale Variablen verstehen

Die Box im Maschinenraum

def test():
geheim = 42
print(geheim)

test()
# print(geheim) # Fehler: geheim gibt es hier nicht

geheim lebt in der Funktion. Draußen ist die Box weg.

Parameter sind auch lokal

def zeige(x):
print(x)

zeige(5)
# x existiert ausserhalb nicht

Ergebnisse nach draußen bringen

Mit return:

def erzeuge_zahl():
wert = 7
return wert

a = erzeuge_zahl()
print(a)

Rate mal!

def f():
n = 1
f()
print(n)
Auflösung

Fehler – n ist lokal.

Probiere es selbst

Experiment 1

Lokale Variable printen – nur innen.

Experiment 2

return der lokalen Variable.

Experiment 3

Gleicher Name innen und außen – beobachte (vorsichtig):

x = 10
def f():
x = 99
print("innen", x)
f()
print("aussen", x)

Fehlerdetektiv

def calc():
ergebnis = 3 + 4
print(ergebnis)
Lösung
def calc():
ergebnis = 3 + 4
return ergebnis
print(calc())

Übungen

Level 1

Funktion mit lokaler Variable und print innen.

Level 2

Dieselbe Info per return nach außen.

Level 3

Zwei Funktionen, jeweils lokale summe – kein Konflikt.

Level-2-Lösung
def get_summe():
summe = 10 + 5
return summe

s = get_summe()
print(s)

Mini-Quiz

Mini-QuizWie bringst du einen lokalen Wert sicher nach aussen?

Scope sitzt! Mini-Projekt: Funktionsrechner.