Namensraum

Namensräume

Namen als Namensräume Allgemein gesagt ist ein Namensraum ein System, um Namen eindeutig zu vergeben und Doppeldeutigkeiten zu vermeiden. Ferner bezeichnet ein Namensraum einen Raum (oder Gebiet) innerhalb eines Programmes, in dem ein Variable gültig ist.
Namensräume kennt man nicht nur bei der Programmierung, sondern auch im Alltag:



Namensräume verhindern Namenskonflikte, d.h. dass man in verschiedenen Modulen zufällig gleiche Namen für Variablen, Funktionen usw. verwendet. In Python hat jedes Modul seinen eigenen Namensraum. Ein Objekt aus einem Namensraum spricht man mit der Punktschreibweise an, statt dem "/" bei den Telefonnummern. Hat man beispielsweise eine Variable a in einem Raum x, so spricht man a mit x.a an.
In Python gibt es drei Namensräume (Geltungsbereiche):
  1. Lokaler Geltungsbereich
    Namen sind innerhalb einer Methode oder Funktion definiert.
  2. Modularer Geltungsbereich
    Namen sind innerhalb einer Datei definiert.
  3. Eingebauter Geltungsbereich
    Innerhalb von Python definierte Namen sind immer gültig.

Namensräume sind intern in Python als Dictionary implementiert. Aber für den Benutzer/Entwickler ist es bei der Verwendung der Namensräume unwichtig.

Lebenszeit eines Namensraums

Nicht zu jedem Zeitpunkt während der Laufzeit eines Programms kann auf jeden Namensraum zugegriffen werden, der in dem Programm verwendet wird. Namensräume haben unterschiedliche Lebenszeiten, weil sie zu unterschiedlichen Zeitpunkten erstellt werden. Es gibt einen Namensraum, der von Anfang bis Ende gültig ist. Dieser Namensraum beinhaltet die integrierten Namen, die erstellt werden, wenn der Python-Interpreter gestartet wird. Der globale Namensraum eines Moduls wird erstellt, wenn das Modul eingelesen wird. Diese sind gültig, so lange das Programm läuft bzw. der Interpreter beendet wird. Wenn eine Funktion aufgerufen, wird ein lokaler Namensraum erstellt. Dieser lebt so lange, bis die Funktion zu Ende ist. Sprich, bis sie etwas zurückliefert oder eine Ausnahme (Exception) generiert.

Geltungsbereiche

Ein Geltungsbereich bezeichnet einen Bereich des Programms, in dem auf einen Namensraum direkt zugegriffen werden kann, ohne einen Namens-Präfix zu verwenden. Zum Beispiel innerhalb einer Funktion. Der Namensraum eines Namens ist identisch zu dessen Geltungsbereich. Geltungsbereiche sind statisch, werden aber dynamisch verwendet.