@alle:
Code: Alles auswählen
class Application(tk.Frame): #1
def __init__(self, master=None): #2
tk.Frame.__init__(self, master) #3
Warum hatte ich diese Frage eingentlich gestellt?
#1 die Klasse 'Application' erbt die Methoden/Funktionen von der Klasse *Frame* des Tkinter-Moduls.(OK)
#2 dies ist der Konstruktor, mit Hilfe dessen man ein neues Objekt der Klasse 'Application' instanziieren kann.(OK)
#3 da #1, so dachte ich die ganze Zeit, warum dann nochmals explizit 'erwähnen/festhalten', dass *Frame* die
ursprüngliche Klassse ist? Aber dies ist ja jetzt geklärt:
[...]Darin musst du aber trotzdem explizit sagen, dass zusätzlich (hier sinnvollerweise am Anfang) der Ablauf / Code aus
der ursprünglichen __init__()-Methode ausgeführt werden soll.[...]
Deswegen dachte ich, dass mittels der Klasse 'Application' bei der Instanziierung eines neuen Objektes *Frame* überladen
wird, um das neue Objekt dadurch zu spezialisieren. Dem ist aber, wenn ich das JETZT richtig verstanden habe, nicht so.
Danke dafür an alle !
@sparrow:
[...] dass du jetzt in allem, was vorne und hinten zwei Unterstriche hat, einen überladenen Operator siehst.
nein, dem ist definitiv nicht so! Aber beim Lernen hatte ich aus einem Buch folgendes 'mitgenommen':
Code: Alles auswählen
class Geld(object):
.
.
def __init__(self, waehrung, betrag):
self.waehrung = waehrung
self.betrag = float(betrag)
.
.
Zum Schluß sei noch darauf hingewiesen, dass auch die __init__-Methode im Grunde eine Überladung ist, nämlich eine Überladung des Zuweisungsoperators '=', der verwendet wird, um eine Instanz einer Klasse zu generieren.
@snafu:
[...] Das führt hier aber IMHO zu weit für einen Anfänger.
Wie wahr !