Frage zur OOP

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
beton
User
Beiträge: 11
Registriert: Dienstag 20. April 2004, 12:50
Kontaktdaten:

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
beton
User
Beiträge: 11
Registriert: Dienstag 20. April 2004, 12:50
Kontaktdaten:

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ß
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
beton
User
Beiträge: 11
Registriert: Dienstag 20. April 2004, 12:50
Kontaktdaten:

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ß
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Gast

Hi Dookie,

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

Danke und Gruß

beton
Antworten