Dynamische (stattische) Methoden-Erweiterung

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
crazyyzarc
User
Beiträge: 28
Registriert: Freitag 10. Juli 2015, 21:08
Wohnort: PyLand

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?

Bild

Vielen Dank für die Rückmeldung! :)
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten