Code Struktur und Variablenzugriff

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
Lucathon
User
Beiträge: 10
Registriert: Dienstag 15. September 2020, 08:21

Hallo, ich habe eine Frage bezüglich der Struktur meines Codes, die mich etwas zerbeißt.

Ich habe eine Klasse A die sich rein um die Verwaltung der GUI kümmert.
Zusätzlich habe ich eine Klasse B für die Verwaltung der seriellen Schnittstelle.

Klasse B setzt 2 Variablen, die Klasse A regelmäßig abfragen soll, um je nachdem verschiedene Aktionen durchzuführen oder eben nicht (z.B. nur GUI aktualisieren, wenn Serielle offen ist).
Ich finde es jetzt ziemlich dumm in Klasse 1 die Klasse B zu impportieren nur um an diese 2 Variablen zu gelangen, da Klasse B ja eigentlich sonst nichts mit KLasse A zu tun hat.

Wie also setze ich das ganze am Besten um, dass beide Klassen mit Variablen benutzen können?

P.S. Klasse A instanziert die Klasse B

Danke schonmal für eure Antworten, hoffe ihr könnt mir sagen wie ich hier die Struktur zu machen habe ohne große Änderungen


L.G.
Lucathon
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Code hilft sehr fürs Verständnis.
Ich bin mir nicht sicher, ob Du mit Klasse an manchen Stellen Instanz der Klasse meinst, oder nicht.
Wenn in __init__ von Klasse A eine Instanz der Klasse B erzeugt wird, dann hast Du doch kein Problem auf die gewünschten Attribute zuzugreifen.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Hallo Lucathon,
Ich finde es jetzt ziemlich dumm in Klasse 1 die Klasse B zu impportieren nur um an diese 2 Variablen zu gelangen, da Klasse B ja eigentlich sonst nichts mit KLasse A zu tun hat.
Was meinst du mit > eine Klasse in eine andere importieren <? Normalerweise importiert man von einem Modul ins andere. - Oder meinst du instantieren?
Befinden sich die Klassen in unterschiedlichen Modulen?
Lucathon
User
Beiträge: 10
Registriert: Dienstag 15. September 2020, 08:21

Ja Klasse A und Klasse B sind in unterschiedlichen Modulen. Würde ich jetzt von Klasse A aus die Variablen in Klasse B benutzen wollen würde ich ja das File der KLasse B importieren und dann die Klassenvariablen ansprechen. Das finde ich aber sehr umständlich zumal die 2 Klassen bis auf die 2 Variablen nichts mitienander zu tun haben. Also was für eine CodeStruktur würde hier helfen?
Lucathon
User
Beiträge: 10
Registriert: Dienstag 15. September 2020, 08:21

Sirius3 hat geschrieben: Dienstag 25. Mai 2021, 14:14 Wenn in __init__ von Klasse A eine Instanz der Klasse B erzeugt wird, dann hast Du doch kein Problem auf die gewünschten Attribute zuzugreifen.
Also aktuell schaut es so aus, dass Klasse A eine Instanz von einer zusätzlichen Klasse erzeugt, nennen wir sie A2, in der Teile für die GUI entworfen werden. Klasse A2 instanziert dann Klasse B in der die Variablen sind, welche auch die KLasse A regelmäßig abfragen soll. Ich benötige also einen schönen Weg wie A und B auf die in B definierten variablen zugreifen können obwohl sozusagen noch eine andere Klasse zwischen den beiden existiert.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Kannst Du bitte Code zeigen, das macht vieles klarer.

Wenn eigentliche Klasse A Zugriff auf die Instanz von B braucht, dann muß B auch in A initialisiert werden und dann A2 übergeben werden.

Dann hoffe ich mal, dass Du keine Klassenvariablen hast, sondern Instanzattribute. Kassenvariablen sind auch globale Variablen, die man nicht benutzen sollte.
Antworten