i

Fachkonzept - Namensräume

Haupt- und Unterprogramme

Ein Unterprogramm ist ein Teilprogramm innerhalb eines Programms, das für eine bestimmte Aufgabe zuständig ist.

Im folgenden Quelltext stellen die Funktionsdefinitionen Unterprogramme dar. Im Hauptprogramm können diese Unterprogramme mit einem Funktionsaufruf aktiviert werden. Beachte, dass Unterprogramme selbst wiederum Unterprogramme enthalten können.

# Funktionsdefinitionen
def inc(x):
    return x+1

def dec(x):
    return x-1

def add(x, y):
    while y > 0:
        x = inc(x)
        y = dec(y)
    return x

def mul(x, y):
    z = 0
    while y > 0:
        z = add(z, x)
        y = dec(y)
    return z 

# Hauptprogramm
x = 1
y = 2
x = add(x, y)
y = mul(x, y)
print(x, y)

Ausführung von Programmen mit Unterprogrammen

Die Ausführung von Programmen mit Unterprogrammen ist kompliziert, da man ständig zwischen den verschiedenen Programmteilen hin und her springen muss.

Beobachte das selbst indem du das Programm schrittweise ausführst.

Namensräume

Die folgende Abbildung zeigt einen eine Momentaufnahme von der Ausführung des Programms (s.o.).

Abarbeitung eines Programms

Es fällt auf, dass hier mehrere "Frames" gebildet sind. Diese Frames umfassen u.a. die jeweils aktuell erzeugten Variablen mit ihren Werten. Beachte, dass es gleichnamige Variablen in den unterschiedlichen Frames geben kann. Bei der Ausführung des Programms muss der Interpreter (d.h. die Einheit, die für die Ausführung zuständig ist) genau wissen, mit welchem Frame gerade gearbeitet wird.

Eine lokale Variable ist (vereinfacht gesagt) eine Variable, die nur innerhalb eines Unterprogramms (bzw. einer Funktionsdefinition) benutzt wird. Beachte, dass die Parameter einer Funktion auch zu diesen lokalen Variablen zählen. Eine globale Variable ist (vereinfacht gesagt) eine Variable, die im Hauptprogramm eingeführt wird.

Sämtliche im Hauptprogramm definierten Namen (von Variablen, Funktionen, ...) bilden den sog. globalen Namensraum. Entsprechend bilden sämtliche in einer Funktionsdefinition vorkommenden Namen (von Variablen, Funktionen, ...) den sog. lokalen Namensraum.

Suche

v
2.7.2.13.2
inf-schule.de/programmierung/python/konzepte/namensraeume/konzept_lokalglobal
inf-schule.de/2.7.2.13.2

Rückmeldung geben