Seite 1 von 1

Kommunikation zwischen Klassen

Verfasst: Freitag 22. September 2023, 10:28
von helloBavaria
Hallo Zusammen,

ich habe gerade folgendes Problem.
In einem größeren Projekt sind verschiedene Klassen in verschiedenen Python Dateien geschrieben, welche in einer "Hauptdatei" importiert werden. Hier werden dann auch die Instanzen erzeugt.
Ich brauche jetzt den Wert einer Variable aus Klasse 1 in Klasse 2, und weiß nicht wie ich darauf zugreifen kann.
Vereinfach sieht das ganze so aus:

Code: Alles auswählen

class1.py
class1:
 def __init__(self):
       self.var = "xyz"

Code: Alles auswählen

class2.py
class2:
 def methodexyz(self):
       id = class1.var # hier habe ich das problem

Code: Alles auswählen

main.py 
from class1 import class1
from class2 import class2
if "__main__" == __name__:
   c1 = class1
   c2 = class2

Hat hier jemand einen Tipp für mich? Wie kommuniziert man am besten zwischen Klassen bzw. Instanzen?

Re: Kommunikation zwischen Klassen

Verfasst: Freitag 22. September 2023, 10:33
von __deets__
Indem man sie einander bekannt macht. Als einfachste Maßnahme die Instanz der einen als Konstruktorargument and die andere übergeben. Und dann einfach merken & Methoden aufrufen.

Re: Kommunikation zwischen Klassen

Verfasst: Freitag 22. September 2023, 10:39
von helloBavaria
__deets__ hat geschrieben: Freitag 22. September 2023, 10:33 Indem man sie einander bekannt macht. Als einfachste Maßnahme die Instanz der einen als Konstruktorargument and die andere übergeben. Und dann einfach merken & Methoden aufrufen.
Danke für die schnelle Antwort. Leider weiß ich noch nicht wirklich "wie" und "wo" ich das genau machen muss. In meinem Beispiel in der main.py, irgendwie so?

Code: Alles auswählen

main.py 
from class1 import class1
from class2 import class2
if "__main__" == __name__:
   c1 = class1
   c2 = class2(c1)

Re: Kommunikation zwischen Klassen

Verfasst: Freitag 22. September 2023, 10:54
von helloBavaria
Ah es hat nach ein paar kleineren Fehlversuchen geklappt -> @__deets danke für die schnelle Hilfe

Re: Kommunikation zwischen Klassen

Verfasst: Freitag 22. September 2023, 20:01
von sparrow
@helloBavaria: Noch als Hinweis, weil sich dein Code so liest: Man schreibt nicht eine Datei je Klasse.

Re: Kommunikation zwischen Klassen

Verfasst: Donnerstag 28. September 2023, 16:06
von helloBavaria
sparrow hat geschrieben: Freitag 22. September 2023, 20:01 @helloBavaria: Noch als Hinweis, weil sich dein Code so liest: Man schreibt nicht eine Datei je Klasse.
Das war nur ein Minimalbeispiel, wobei in diesem Projekt durchaus Python Dateien manchmal nur eine Klasse beinhalten. Meiner Ansicht nach sinnvoll, wenn eine Klasse "logisch" nicht zu einer anderen Datei passt. Oder gibts da einen Codex der was anderes sagt?