====== Modularisierung ======
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