Seite 1 von 1
Dynamische (stattische) Methoden-Erweiterung
Verfasst: Samstag 18. Dezember 2021, 14:24
von crazyyzarc
Hey zusammen,
ich habe leider noch nichts Passendes zu meiner Frage gefunden. Vielleicht könnt ihr mir da auf die Sprünge helfen:
Was bringt es eine Klasse mit einer statischen Methode (2) zu erweitern, wenn man auch die dynamische Methoden-Erweiterung mit einer Bindung (1) umsetzen kann?
Vielen Dank für die Rückmeldung!

Re: Dynamische (stattische) Methoden-Erweiterung
Verfasst: Samstag 18. Dezember 2021, 14:46
von Sirius3
Klassen erweitern kann man zwar, aber warum sollte man das in diesem Fall tun? Es gibt selten einen Grund das zu tun. `bringe` ist keine statische Methode; das Beispiel ist daher unsinnig.
Manchmal kann es sinnvoll sein, eine Methode im Namensraum einer Klasse zu haben, die nicht von einer Instanz abhängig ist, ist aber auch selten.
Re: Dynamische (stattische) Methoden-Erweiterung
Verfasst: Samstag 18. Dezember 2021, 16:59
von __blackjack__
Ergänzend zu Sirius3, insbesondere der letzte Satz: Das ist oft der Fall wenn eine bestimmte API vorgegeben ist, also eine Methode deswegen tatsächlich als Methode da sein muss, aber die `self` im konkreten Fall gar nicht benötigt.
Eine andere Kategorie von Methoden die `self` nicht benötigen sind Klassenmethoden. Die sind häufiger als statische ”Methoden” und in der Regel für Konstruktoren die etwas tun was über minimales initialisieren hinaus geht. Beispielsweise die Textrepräsentation parsen, also quasi so etwas wie die Umkehrfunktion von `str()`/`__str__()` oder andere Konvertierungen vornehmen.