Klassenübergreifende Variable

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
Poseidonius
User
Beiträge: 63
Registriert: Montag 23. Januar 2006, 08:58

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
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ja, man kann so was schon irgendwie machen.

Meinst du nicht, es sei besser es per Environment zu lösen?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Poseidonius
User
Beiträge: 63
Registriert: Montag 23. Januar 2006, 08:58

Hallo jbs,

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

Grüße

Poseidonius
quant
User
Beiträge: 34
Registriert: Freitag 29. Mai 2009, 12:06

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
Antworten