Ich glaube jetzt wird es unmöglich, falls Python nicht doch noch was in der Reserve hat.
Ich habe zwei Klassen mit zugehörigen Parametern/Variablen in der jeweiligen Klasse, die jeweils in der anderen Klasse benötigt werden.
Da aber entweder die Eine oder die Andere Klasse als Erste erstellt, bzw. instanziert wird, ist jeweils die Andere noch nicht präsent. Und das führt zum Fehler.
Hat hierzu jemand eine Idee ?
Danke.
MrNiceTry
Zwei Klassen, die sich gegenseitig brauchen
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Versteh ich nicht. Vielleicht willst du mal etwas konkreter werden bzw. ein Beispiel anbringen? Das sieht mir jetzt eher nach einem Denkfehler aus.
Wenn du zwei Klassen hast die sich gegenseitig brauchen ist dein Design kaputt. Entweder sie sind sich so ähnlich dass du nur eine Klasse brauchst oder du fasst die Gemeinsamkeiten in einer dritten zusammen.
Stark vereinfacht:
Code: Alles auswählen
class a(object):
def __init__(self):
vari_a = 'aaaaaaaaaaaaa'
print b.vari_b
class b(object):
def __init__(self):
vari_b = 'bbbbbbbbbbbbb'
print a.vari_a
Muß nicht zwingend kaputt sein.
Ich hab mich schon mit der Ursache und dem Grund auseinandergesetzt.
Ich habe mal in einer 'zugegebenermaßen' Kompilersprache so was wie ein 'Pre-' zur Lösung eines solchen Problemes gesehen.
Da wurde eine Funktion die erst später erscheint schon vorher zur Pre-Verfügung gestellt.
Ich hab mich schon mit der Ursache und dem Grund auseinandergesetzt.
Ich habe mal in einer 'zugegebenermaßen' Kompilersprache so was wie ein 'Pre-' zur Lösung eines solchen Problemes gesehen.
Da wurde eine Funktion die erst später erscheint schon vorher zur Pre-Verfügung gestellt.
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Das ist ein Designfehler.
Wenn du uns beschreiben könntest, was du machen willst und was du dir deswegen für ein Datenmodell (im Sinn von Klassen) gedacht hast, könnte man dir ggf. helfen... Also raus mit der Sprache jetzt :-)
Wenn du uns beschreiben könntest, was du machen willst und was du dir deswegen für ein Datenmodell (im Sinn von Klassen) gedacht hast, könnte man dir ggf. helfen... Also raus mit der Sprache jetzt :-)
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Aber sicherlich nicht eine Variable im Sinne einer Instanz. Das geht nämlich gar nicht. Wie willst du denn z.B. eine Zahl verwenden, die noch gar nicht definiert wurde? Wenn du sowas meinst wie in C ``void foo()`` zu deklarieren, das dann zu verwenden und drunter irgendwann ``void foo() { .... }`` zu definieren -- das ist was anderes. Da geht es um Datentypen, nicht um Werte.MrNiceTry hat geschrieben:Da wurde eine Funktion die erst später erscheint schon vorher zur Pre-Verfügung gestellt.