Unter Modularisierung versteht man die Aufteilung des Quelltextes in einzelne Teile, sogenannte Module. Diese Module werden in eigenen Dateien gespeichert. Eine sehr große Anzahl von Modulen wird mit Python bereits mitgeliefert und kann in den eigenen Programmen benutzt werden. Sie werden über den Befehl
from modulname import *
so eingebunden, dass die Funktionen direkt mit ihrem Namen aufgerufen werden können.
Das folgende Beispiel stellt den allerersten Anfang eines „Karol“-Programms in Python dar: In der Datei RobbiDaten.py
wird die Klasse „Welt“ mit einigen Methoden definiert.
class Welt(object): # Konstruktor def __init__(self,laenge=10,breite=10,hoehe=10): self.Laenge = laenge self.Breite = breite self.Hoehe = hoehe # eine zweidimensionale Liste anlegen und mit Nullen füllen self.Ziegel = [] for j in range(laenge): reihe = [] for i in range(breite): reihe.append(0) self.Ziegel.append(reihe) # Anzahl der Ziegel an einer bestimmten Position direkt eingeben def setZiegel(self,x,y,anzahl): self.Ziegel[x][y] = anzahl # Anzahl der Ziegel an einer bestimmten Position um 1 erhöhen def hinlegenZiegel(self,x,y): self.Ziegel[x][y] += 1
In der Datei RobbiShell.py
wird das Datenmodell eingebunden und eine einfache Prozedur zur Ausgabe der Welt in der Shell definiert.
from RobbiDaten import * def weltausgeben(welt): print "Länge: ",welt.Laenge print "Breite:",welt.Breite print "Höhe: ",welt.Hoehe for j in range(welt.Laenge-1,-1,-1): for i in range(welt.Breite): print welt.Ziegel[i][j], print
Nach dem Start von RobbiShell.py
kann in der Shell auf die Klasse „Welt“ zugegriffen werden:
>>> w=Welt() >>> w.setZiegel(2,3,4) >>> w.hinlegenZiegel(1,2) >>> weltausgeben(w) Länge: 10 Breite: 10 Höhe: 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0