Funktion in mehreren Modulen/Klassen nutzen
Verfasst: Dienstag 20. November 2007, 18:39
Hallo @ll,
ich habe mich mal wieder in eine blöde Situation durch teilen der Scripte manövriert.
Grob gesagt habe ich eine Funktion die in mehreren Klassen bzw Modulen immer wieder genutzt wird.
Mit Modulen meine ich Klassen, bzw Dateien in Unterordnern
zB eine Funktion getConfig() die eine Datei mit Hilfe des ConfigParsers einliest. Diese Funktion verwende ich in mehreren Klassen.
Jetzt hatte ich die Schlaue Idee definierst du doch die Funktion an einer Stelle. Von mir aus auch als Klasse.
Frage: Wie rufe ich diese wiederum dann auf? Da ich nur Fehler wie global name 'getConfig' is not defined bekomme.
Die Struktur sieht ungefär so aus:
Hauptscript.py
anderes.py
Ordner/nocheins.py
und im Hauptscript.py nutze ich dann ganz normal import
jetzt wird die Funktion in jeder Datei gebraucht, in mindestens einer der Klassen, die dort definiert sind.
Tipp? Oder ne einfache Anleitung zum vernünftigen OO Programmieren, was wohl in die Richtung geht.
Bzw. Anleitung zum "Pakete" erstellen.
ich habe mich mal wieder in eine blöde Situation durch teilen der Scripte manövriert.
Grob gesagt habe ich eine Funktion die in mehreren Klassen bzw Modulen immer wieder genutzt wird.
Mit Modulen meine ich Klassen, bzw Dateien in Unterordnern
zB eine Funktion getConfig() die eine Datei mit Hilfe des ConfigParsers einliest. Diese Funktion verwende ich in mehreren Klassen.
Jetzt hatte ich die Schlaue Idee definierst du doch die Funktion an einer Stelle. Von mir aus auch als Klasse.
Frage: Wie rufe ich diese wiederum dann auf? Da ich nur Fehler wie global name 'getConfig' is not defined bekomme.
Die Struktur sieht ungefär so aus:
Hauptscript.py
anderes.py
Ordner/nocheins.py
und im Hauptscript.py nutze ich dann ganz normal import
jetzt wird die Funktion in jeder Datei gebraucht, in mindestens einer der Klassen, die dort definiert sind.
Tipp? Oder ne einfache Anleitung zum vernünftigen OO Programmieren, was wohl in die Richtung geht.
Bzw. Anleitung zum "Pakete" erstellen.