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