Seite 1 von 1

Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 00:49
von MrNiceTry
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

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 00:57
von Dauerbaustelle
Versteh ich nicht. Vielleicht willst du mal etwas konkreter werden bzw. ein Beispiel anbringen? Das sieht mir jetzt eher nach einem Denkfehler aus.

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 01:20
von DasIch
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.

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 01:21
von MrNiceTry
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

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 01:24
von MrNiceTry
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.

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 01:24
von Dauerbaustelle
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 :-)

Re: Zwei Klassen, die sich gegenseitig brauchen

Verfasst: Freitag 7. Januar 2011, 01:27
von Dauerbaustelle
MrNiceTry hat geschrieben:Da wurde eine Funktion die erst später erscheint schon vorher zur Pre-Verfügung gestellt.
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.