Creating Modules #Mastery 10

Problemsolving with Programming

Der letzte Post hat sich um die Verwendung und den import von Modulen bzw. Libraries gedreht. Diese mal soll es darum gehen, wie man solche Module eigentlich selber erstellen kann und worauf dabei zu achten ist.

Um ein Modul zu erstellen generiert man einfach eine normale Python-Datei (.py), in diesem Beispiel nenne ich sie CreateModules. In dieser Datei kann man dann Klassen, Funktionen und Variablen definieren, dei man dann in sog. main-Dateien nutzen möchte.

Da die Funktion in dieser Datei nicht aufgerufen wird, wird auch zunächst nichts ausgegeben.

Als nächstes wird eine Datei main_creatingModules erstellt, welche das Hauptprogramm darstellt, welches auf das Modul CreatingModules und alle enthaltenen Funktionen zugreift.

Um die Funktion world() in der main-Datei aufrufen zu könne muss man mit dem Punkt-Operator arbeiten.
Dabei schreibt man einfach den Namen des Moduls in dem sich die Funktion befindet vor den Funktionsnamen und trennt diese durch einen Punkt.

Allerdings kann man mit from CreatingModules import world direkt auf die Funktion world() zugreifen. Man spart sich so den Punkt-Opreator. Das empfiehlt sich aber nur wenn man nicht sehr oft auf Inhalte aus dem Modul zugreifen muss, da man diesen Vorgang sonst für jedes einzelne Element von CreatingModules wiederholen müsste.

Möchte man mit Variablen arbeiten, so muss man diese im Modul nur definieren und kann sie dann in der Main ebenfalls mithilfe des Punkt-Operator aufrufen.

Da durch den import-Befehl auf alle Klassen, Funktionen und Variablen des Moduls CreatjingModules zugegriffen werden kann muss man nur den Punkt-Operator benutzen, um mit der Variablen aus dem Modul arbeiten zu können.

Eigene Meinung

Eigene Module zu schreiben kann viele Vorteile mit sich bringen, z.B. kann man große Teile eines Programms auslagern um die main-Datei so übersichtlicher zu halten bzw. kann man diese Module dann auch für andere Projekte verwenden. Darüber hinaus lässt sich so die Python Standard-Library um auf die individuellen Bedürfnisse angepassten Module/Libraries erweitern.

Hinterlasse einen Kommentar