Verständnis Frage: Module / Klassen & Referenzen
Verfasst: Donnerstag 13. Januar 2022, 14:26
Ich bin erst zeit ein paar Wochen in Python unterwegs und beschäftige mich gerade mit Modulen / Klassen und den Instanzen dieser !
Ich habe leider nur noch nicht verstanden, wie ich eine Instanz die ich in der Main-Datei (Modul) erstellt habe, dessen Klasse in einer anderen Datei (Modul) liegt wieder an diese übergeben kann, so das ich diese Instanz dort auch benutzen kann.
Bsp:
in der Main Methode habe ich eine Instanz erzeugt von einer Klasse (Frame) die in einer anderen Modul liegt.
Die Klasse die das Frame erzeugt, liegt im Modul MyClass:
Jetzt habe ich in MyClass eine weitere Klasse die Button's erzeugt, mit der ich über Command Frames verstecken oder sichtbar machen möchte.
Um jetzt die Frames in der Klasse bekannt zu machen, brauchte ich ja die Instanz der erzeugten Frames aus der Main-Datei.
Aber wie übergebe ich diese am besten ?
Im Methodenaufruf oder gibt es noch andere saubere Lösungen wie man dies ohne Globale Variablen lösen kann ?
Ich danke schon mal für eure Antworten.
Gruß Mario
Ich habe leider nur noch nicht verstanden, wie ich eine Instanz die ich in der Main-Datei (Modul) erstellt habe, dessen Klasse in einer anderen Datei (Modul) liegt wieder an diese übergeben kann, so das ich diese Instanz dort auch benutzen kann.
Bsp:
in der Main Methode habe ich eine Instanz erzeugt von einer Klasse (Frame) die in einer anderen Modul liegt.
Code: Alles auswählen
import MyClass
...
haupt_frame = gui.MyFrame(win)
haupt_frame.config(bg='blue')
eingabe_frame = gui.Labelframe(haupt_frame)
eingabe_frame.config(text='Eingabe')
....
Code: Alles auswählen
...
class MyFrame(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
...
Code: Alles auswählen
...
class Nav_Button(tk.Button):
def __init__(self, master):
# Menü Buttons
self.hs_button = tk.Button(master,
text='Hauptseite', command=lambda: [eingabe_frame.forget(), self.tree_frame.pack()])
self.hs_button.pack()
...
Aber wie übergebe ich diese am besten ?
Im Methodenaufruf oder gibt es noch andere saubere Lösungen wie man dies ohne Globale Variablen lösen kann ?
Ich danke schon mal für eure Antworten.
Gruß Mario