Seite 1 von 1

Klassenübergreifende Variable

Verfasst: Sonntag 9. Januar 2011, 18:40
von Poseidonius
Hallo zusammen,

allen Python Forum Autoren ein erfolgreiches Neues Jahr !

Ich möchte, dass eine Änderung des Wertes von position in den Instanzen von "Control" automatisch auch eine Änderung der gleichnamigen Variable in der Instanz von "Simulation" bewirkt (Im Beispiel sollte bei print b also eine 2 statt 1 ausgegeben werden). Die Instanzen sollen sich dabei nicht "kennen", daher wollte ich keinen direkten Zugriff auf die Simulation.position aus Control.set_position vorsehen. Ich bräuchte quasi für Simulation.position einen Pointer der auf Control.position zeigt. Geht so was in Python?

Wie immer vielen Dank für Eure Anregungen

Poseidonius

Code: Alles auswählen

class Control():
    def __init__(self, position):
        self.position=position

    def set_position(self,position):
        self.position=position

    def __repr__(self):
        return str(self.position)


class Simulation():
    def __init__(self, position):
        self.position=position

    def __repr__(self):
        return str(self.position)

a=control(1)
b=simulation(a.position)
a.set_position(2)
print b

Re: Klassenübergreifende Variable

Verfasst: Sonntag 9. Januar 2011, 20:06
von jbs
Ja, man kann so was schon irgendwie machen.

Meinst du nicht, es sei besser es per Environment zu lösen?

Re: Klassenübergreifende Variable

Verfasst: Sonntag 9. Januar 2011, 20:09
von Poseidonius
Hallo jbs,

Danke für die schnelle Antwort, mit Environment meinst eine globalen Variable?

Grüße

Poseidonius

Re: Klassenübergreifende Variable

Verfasst: Donnerstag 13. Januar 2011, 09:58
von quant
du kannst auch eine dritte klasse schreiben, als variablen container und dort den wert setzen und in der anderen klasse immer wenn benötigt mit einem getter sie abrufen