Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1314:code_in_module_aufteilen_einzeln_testen

Code in Module aufteilen

Wenn es gelingt, die zu lösenden Aufgaben auf unabhängige Funktionen/Klassen zu verteilen, so kann man die in getrennten Dateien realisieren.

Nehmen wir an, wir brauchen die Funktionen f und g, die wir in den Modulen modulf.py und modulg.py unterbringen:

# modulf.py
 
def f(x):
   return x*x
 
def main():
   # Zum Testen!
   print 1,f(1)
   print 2,f(2)
   print 3,f(3)
 
if __name__ == '__main__': 
   main()

und

# modulg.py
 
def g(x):
   return x**3
 
def main():
   # Zum Testen!
   print 1,f(1)
   print 2,f(2)
   print 3,f(3)
 
if __name__ == '__main__':
   main()

Jede de beiden Dateien enthält eine Funktion main(), die nur gestartet wird, wenn man die Datei als Hauptprogramm aufruft, Dafür sorgt die etwas merkwürdige if-Anfrage. Wenn man also diese Datei bearbeitet und 'ausführt', wird immer die Testfunktion main() aufgerufen. Wenn man dagegen die Datei als Modul importiert oder von diesem importiert, geschieht das nicht. Diese Struktur wird immer erzeugt, wenn man im Editor geany unter 'Neu (aus Vorlage)' den Punkt Main.py auswählt. Machen Sie sich bewusst, dass das entwickeln eines Algorithmus mit einer eigenen kleinen Testfunktion viel angenehmer ist, als immer ein 'ganzes Programm' laufen zu lassen.

Wie benutzt man nun die Module? Ich will nur den einfachen Fall betrachten, dass sie sich im selben Verzeichnis befinden, in dem man arbeitet. Im folgenden sind zwei Varianten der Verwendung:

from modulf import *
from modulg import *
 
print f(3)+g(4)

und

import modulf
import modulg as mg
 
print modulf.f(3)+mg.g(4)
ws1314/code_in_module_aufteilen_einzeln_testen.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)