Seite 1 von 1

Frage zur OOP

Verfasst: Montag 26. April 2004, 14:06
von beton
Hallo zusammen,

bitte entschuldigt, wenn diese Frage vielleicht ein wenig anfängerhaft klingt, aber ich bin noch nicht so lange mit dabei.

Wenn ich in KlasseA Zugriff auf eine Instanzvariable von KlasseB bekommen will, dann schreib ich doch am besten in KlasseB eine entsprechende get-Methode. Wie mache ich dann jetzt diese get-Methode in der KlasseA bekannt?

Für nen kleinen Tipp wär ich echt dankbar

Gruß Beton

Verfasst: Montag 26. April 2004, 14:32
von beton
Da bin ichs nochmal selber,

Die Sache hat sich denk ich erledigt. Zumindest, wenn es von der Objektorientierung her OK ist, KlasseA per Paramter im Konstruktor die Instanz von KlasseB mitzugeben.

Das funktioniert aber doch nur, wenn ich KlasseA in KlasseB instanziert wird, oder ? Was mach ich denn, wenn das nicht der Fall ist ?

Schönen Gruß

Verfasst: Montag 26. April 2004, 14:32
von Dookie
hi beton,

ganz verstehe ich die Frage nicht, könntest Du mal ein einfaches Beispiel bringen, was Du genau machen willst, und in welcher Beziehung die KlasseA zur KlasseB Steht?


Gruß

Dookie

Verfasst: Montag 26. April 2004, 14:37
von beton
Hallo Dookie,

Ja, wenn ich mir das ganze nochmal durchlese, seh ich ein, dass das mit KlasseA und B und so nicht so ganz glücklich ist :?

Ich hab eine Klasse, in der ich eine einfache grafische Benutzeroberfläche habe, mit der ich einen Motor über serielle Schnittstelle steuern will. In einer zweiten Klasse hab ich die Kommunikation mit der seriellen Schnittstelle untergebracht. Nun will ich, wenn bei der Übrtragung etwas schief geht, eine Meldung in der StatusBar der grafischen Oberfläche ausgeben.

Hoffe, das war jetzt etwas verständlicher

Gruß

Verfasst: Montag 26. April 2004, 14:52
von Dookie
Hi beton,

Du kannst auch eine Methode als Parameter an eine andere Klasse bei __init__ mitgeben. Diese (Status)-Methode kannst Du dann in der Methode aufrufen, wenn sich der Text in der Statuszeile ändern soll.
Vom Prinzip her geht das so:

Code: Alles auswählen

class Steuerung(object):
    def __init__(self, set_status):
        self.show_meldung = set_status

    def on_error(self, msg): #msg ist die Fehlermeldung
        self.show_meldung("Fehler: %s" % msg)

class GUI(object):
    def change_status(self, text):
        self.statusbar.change_text(text)

gui = GUI()
st = Steuerung(gui.change_status)
Gruß

Dookie

Verfasst: Dienstag 27. April 2004, 08:35
von Gast
Hi Dookie,

Danke, das war so ziemlich genau das, nachedm ich gesucht hatte.

Danke und Gruß

beton