Werte eines anderen Python-Moduls übernehmen/geben?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gotch@
User
Beiträge: 5
Registriert: Mittwoch 5. November 2003, 10:37
Kontaktdaten:

MoOinsen!
Wie kann ich Werte eines Python-Moduls direkt an ein anderes übergeben?
Wir brauchen das dazu, um statistische Berechnungen grafisch mittels eines anderen Moduls aufzubereiten. Die Berechnungen klappen, die grafische Ausgabe ebenfalls. Nun fehlt nur noch die "Verbindung" beider.
Habe dazu leider noch nichts finden können...
mfG
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!
Gotch@ hat geschrieben:Nun fehlt nur noch die "Verbindung" beider.
Das ist eine Design-Frage, die man nur sehr spekulativ beantworten kann, ohne genaue Kenntnisse Eurer Module und dem Drumherum. Wie sieht es in den Modulen aus? Liegt dort prozedualer Code 'offen' rum? Oder ist alles in Funktionen gekapselt? Oder ist alles in Klassen gekapselt? Letzteres wäre natürlich ideal.

Eigentlich bieten sich 3 Möglichkeiten an:

1.
Das Grafikmodul importiert das Statistikmodul. Das bietet sich zumindest dann an, wenn das Grafikmodul sowieso für nichts anderes zu gebrauchen ist, als für die Darststellung von Daten genau dieses Statistikmoduls.

2.
Falls die Statistik in einer Klasse gekapselt ist, könnte man von dieser Klasse eine neue Klasse ableiten, die dann um die Grafikfähigkeit erweitert wird. Wird aber wohl seltener zum Einsatz kommen.

3.
Ein drittes Modul, das beiden Module importiert. Bietet sich an, wenn die beiden Module relativ eigenständig sind. Die Statistik wird ja völlig eigenständig sein, aber auch das Grafikmodul kann ja sehr universell gestaltet sein, so das es auch andere Datenquellen nutzen kann. Sehr von Vorteil wäre es dann natürlich, wenn sowohl die Statistikberechnung als auch die graf. Darstellung in Klassen gekapselt sind (muss aber nicht sein). Beispiel:

Code: Alles auswählen

from statistikModule import statistikKlasse
from grafikModule import grafikKlasse
...
statObj = statistikKlasse(...)
...
grafObj = grafikKlasse(...)
grafObj.SetData( statObj.GetData() ) 
grafObj.Draw(...)
...
hth
Jan
Gotch@
User
Beiträge: 5
Registriert: Mittwoch 5. November 2003, 10:37
Kontaktdaten:

Ich hab mich vorerst einmal für die erste Variante entschieden, also Import des Statistik-Moduls im Grafikmodul. Funktioniert!
Das mit den Klassen wäre wahrscheinlich eleganter, aber mit Python kenne ich mich bis jetzt noch nicht allzu gut aus. Aber das kann ja noch werden... :)
mfG
Antworten