Code in Module aufspalten,Module aber voneinander abhängig

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
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

Hi ihr da draußen,

ich möchte einen Quellcode C in zwei Module A und B aufspalten. Jetzt ist es aber so, dass A Funktionalitäten aus B braucht und B Funktionalitäten aus A, so dass das ganze nicht funktioniert...(es ist also keine funktionale Aufspaltung sondern eher eine logische Trennung von Modellbestandteilen).
Habe schon versucht die Module gegenseitig zu importieren, aber es geht nicht (was mir eig auch logisch scheint...). Mein Python Buch sieht diesen Fall auch nicht vor...
Hab mit jmd gesprochen, der mehr Ahnung hat als ich und er meinte, man könne das evtl. über ein drittes Modul machen, er wisse aber auch nicht genau wie...
Jmd ne Ahnung wie sowas funktionieren könnte bzw ob es überhaupt geht?

Danke für Rat und Tat!
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Ein drittes Modul wäre ein Ansatz. Die __init__.py eines Packages wäre so ein Ort, wo man die beiden Module zusammenführen könnte. Das Problem des wechselseitigen Imports muß man aber auch da irgendwie lösen.

Wenn die Funktionen / Klassen in den beiden Modulen aber so eng verzahnt sind, daß sie sich nicht vernünftig trennen (=auseinandersortieren) lassen, macht es wahrscheinlich doch eher Sinn, alles zusammen zu lassen.
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

danke pekh und prinzipiell hast du recht.
das problem ist aber, dass die übersichtlichtkeit massiv beeinträchtigt wird. es gibt auf der einen seite ein modell mit einigen akteuren und auf der anderen seite zig politiken, über die die akteure ihre handlungen steuern.
es werden aber nicht immer alle politiken gebraucht, der quelltext ist aber voll damit (hängt halt immer vom experiment ab, wie das modell konfiguriert wird)... diese möchte ich eben aus übersichtlichkeitsgründen vom rest trennen, damit aussenstehende das ganze schneller überblicken...

der knackpunkt ist der gegenseitige import...
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

In welcher Form liegen die Akteure und Politiken (Verhaltensweisen?) denn vor? Vielleicht läßt sich ja was über Änderungen an der API erreichen.

Ansonsten mußt du halt versuchen, entweder die Abhängigkeit in einer Richtung aufzuheben, oder halt gemeinsam genutzte Ressourcen in ein drittes Modul auszulagern, das dann von den beiden anderen importiert wird.
LiLaLaunebär
User
Beiträge: 55
Registriert: Sonntag 11. April 2010, 14:41

hm, ne, trennen is nich...v...muss dann wohl akzeptieren, dass es nicht geht.
aber trotzdem danke an alle
Antworten