Aufruf von Methoden in der __init__-Methode

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
Atalanttore
User
Beiträge: 407
Registriert: Freitag 6. August 2010, 17:03

Hallo

Eine meiner seit langen bestehenden Fragen ist, ob man bereits in der __init__-Methode andere Methoden der Klasse aufrufen kann.

Ich habe mir dazu ein sehr einfaches Beispiel geschrieben:

Code: Alles auswählen

class Test:
    def __init__(self):
        print("Hallo Welt")
        self.write_text()

    def write_text(self):
        print("Hallo Unisersum")

test = Test()
Es funktioniert sogar, obwohl der Aufruf der Methode `write_text()` vor der Definition kommt. Außerhalb von Klassen muss die Definition ja immer vor dem Aufruf stehen, damit es funktioniert. Ist die Inkonsistenz bei Klassen so gewollt?

Gruß
Atalanttore
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Es gibt keine Inkonsistenz. Erst wird die Klasse `Test` mit all ihren Methoden definiert, dann in der letzten Zeile aufgerufen. Also gilt auch hier, erst Definitien dann Aufruf.
Atalanttore
User
Beiträge: 407
Registriert: Freitag 6. August 2010, 17:03

Wird die __init__-Methode immer erst zum Schluss, nach der Definition aller Methoden einer Klasse, aufgerufen?

Gruß
Atalanttore
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

`__init__` wird dann aufgerufen, wenn Du eine Instanz der Klasse initialisierst.
Antworten