Inhaltsverzeichnis
Sie haben gesehen, wie Sie Code in Ihren Programm wieder verwenden können, indem Sie
Funktionen nur einmal definieren. Was machen Sie aber, wenn Sie eine ganze Anzahl von
Funktionen in anderen Programmen benutzen wollen? Wie Sie vielleicht vermutet haben,
sind Module die Lösung dafür. Ein Modul ist im Grunde nur eine Datei, die alle von Ihnen
definierten Funktionen und Variablen beinhaltet. Um ein Modul in anderen Programmen
wiederverwenden zu können, muss der
Dateiname eines Moduls die Endung .py
haben.
Ein Modul kann von einem anderen Programm importiert werden, um von dessen Funktionalität Gebrauch zu machen. Genauso können wir auch die Python-Standardbibliothek verwenden. Zunächst werden wir sehen, wie wir die Module der Standardbibliothek verwenden können.
Beispiel 8.1. Benutzung des sys-Moduls (beispiel_sys.py)
#!/usr/bin/python import sys print 'Die Kommandozeilenparameter sind:' for i in sys.argv: print i print '\n\nDer PYTHONPATH ist', sys.path, '\n'
$ python beispiel_sys.py Wir sind Argumente Die Kommandozeilenparameter sind: beispiel_sys.py Wir sind Argumente Der PYTHONPATH ist ['/home/swaroop/byte/code', '/usr/lib/python23.zip', '/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2', '/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload', '/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
Zuerst importieren wir das Modul sys
mittels der import
-Anweisung. Im Wesentlich teilen wir Python
dadurch mit, dass wir dieses Modul in unserem Programm verwenden wollen. Das Modul
sys
enthält Funktionalität, die mit dem Python-Interpreter selbst
und dessen Umgebung zu tun hat.
Wenn Python die Anweisung import sys
ausführt, sucht
es nach dem Modul sys.py
in einem der Verzeichnisse,
die in seiner Variablen sys.path
aufgelistet werden. Wird
die Datei gefunden, so werden die Anweisungen im Hauptblock dieses Moduls
ausgeführt. Das Modul wird für Sie dann verfügbar
gemacht. Beachten Sie, dass die Initialisierung nur beim ersten
Mal durchgeführt wird, wenn wir ein Modul importieren. Übrigens steht 'sys'
als Abkürzung für 'System'.
Der Zugriff auf die Variable argv
im Modul sys
geschieht mittels der Punktnotation sys.argv
.
Ein Vorteil dieser Vorgehensweise besteht darin, dass der Name nicht mit einer anderen
Variablen des Namens argv
innerhalb Ihres Programms kollidiert.
Auch weist er eindeutig darauf hin, dass er Teil des Moduls sys
ist.
Die Variable sys.argv
ist eine Liste von
Strings (Listen werden in späteren Abschnitten genauer erklärt).
Diese spezielle Liste sys.argv
besteht aus den
Kommandozeilenparametern, d.h. den zusätzlichen Argumenten,
die Ihrem Programm über die Kommandozeile übergegeben wurden.
Wenn Sie eine Entwicklungsumgebung verwenden, um diese Programme zu schreiben und auszuführen, suchen in den Menüs nach einer Möglichkeit, dem Programm Kommandozeilenparameter zu übergeben.
Wenn wir python beispiel_sys.py Wir sind Argumente
ausführen, starten wir das Modul beispiel_sys.py
mit dem
python-Befehl, und alles andere danach sind Argumente, die dem
Programm übergeben werden. Python speichert sie für uns in der Variablen sys.argv
.
Denken Sie daran, dass der Name des laufenden Skripts immer der erste Parameter
in der Liste sys.argv
ist. In diesem Fall haben wir also
'beispiel_sys.py'
als sys.argv[0]
,
'Wir'
als sys.argv[1]
,
'sind'
als sys.argv[2]
und
'Argumente'
als sys.argv[3]
.
Beachten Sie, dass Python mit 0 anfängt zu zählen, und nicht mit 1.
Die Variable sys.path
enthält die Liste der Namen der
Verzeichnisse, aus denen Module importiert werden. Beachten Sie, dass der erste String in
sys.path
leer ist - dieser Leerestring zeigt an, dass das
aktuelle Verzeichnis auch Teil von sys.path
ist, das ansonsten
mit der Umgebungsvariablen PYTHONPATH
übereinstimmt.
Das bedeutet, dass Sie Module, die sich im gleichen Verzeichnis befinden, direkt
importieren können. Andernfalls müssen Sie Ihr Modul in eines der Verzeichnisse platzieren,
die in sys.path
aufgelistet sind.