Ein Modul ist nun nichts weiter als der Ort, an dem Namen gespeichert werden. Dieses ist lediglich eine Datei, in der Sie den Code speichern. Wir werden sehr bald verstehen, dass ein solches Modul sozusagen ein Programm darstellt. Statt also alles am Interpreter direkt auszuprobieren, benutzen Sie den Editor von IDLE und erstellen Sie eine Datei mit der Dateiendung .py, zum Beispiel test.py. In diese Datei schreiben Sie dann ihren Code genauso ein, als ob Sie ihn direkt am Interpreter-Prompt eingeben würden.
Dann rufen Sie den Interpreter auf und laden das Modul mit dem Befehl import test1.8. Sodann läuft der Code automatisch ab. Der Witz ist der, dass Sie mit den durch das Modul eingerichteten Namen nach »Ablauf« des Programms weiterarbeiten können. Ein Beispiel: schreiben Sie im Editor den Text
anna=4
3+5*anna
print 'Das war ein erstes Beispiel'
Das war ein erstes Beispiel
4
Ändern Sie jetzt einmal das Modul so, dass im Text die Zuweisung anna=7 erfolgt. Importieren Sie wieder das Modul und überprüfen Sie, worauf anna jetzt zeigt.
Sie werden feststellen, dass dieses keineswegs die 7 ist. Warum? Python stellt fest, dass bereits der Name anna schon existiert! Ein neuer Import wird daher nicht vorgenommen. Ja, anna würde in der alten Form sogar dann noch verfügbar sein, wenn der Name im veränderten Modul sogar gelöscht wurde!
Das wirkt auf den ersten Blick ärgerlich, ist aber von sehr grossem Vorteil, wie Sie später einsehen werden. Um ein verändertes Modul nun vollständig, also auch mit den Veränderungen neu zu laden, muss
In der Abbildung
wird gezeigt,
wie das Ganze zu verstehen ist. Module enthalten eigentlich nur Namen,
in diesem Falle cdaniela und cerica, die ausserhalb
der definierten Klassen sichtbar sind. Wenn ein Modul importiert wird
Wenn mit from der Inhalt eines Moduls importiert wird, wie bei dem rechten Modul, bei dem der Rahmen gestrichelt gezeichnet wurde, so stehen diese Namen alle so zur Verfügung, als hätte man sie direkt im Interpreter definiert. Wenn diese Namen aber schon durch einen vorherigen Import existieren, muss das gesamte Modul nachgeladen und ein erneutes from durchgeführt werden.