Python-Vererbung - Aufruf von Basis-Methoden innerhalb der Klasse untergeordnete Klasse?
Es verblüfft mich, wie ich kann nicht finden, eine eindeutige Erklärung dieses überall.
Warum und Wann müssen Sie zum Aufruf der Methode der Basisklasse innerhalb der same-name-Methode der Kind-Klasse?
class Child(Base):
def __init__(self):
Base.__init__(self)
def somefunc(self):
Base.somefunc(self)
Ich vermute, dass Sie dies tun, wenn Sie nicht wollen, um vollständig überschreiben die Methode in der Basisklasse. ist das wirklich alles dort ist zu ihm?
InformationsquelleAutor der Frage user1369281 | 2012-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel, tun Sie dies, wenn Sie wollen erweitern Sie die Funktionalität, indem Sie, aber nicht vollständig ersetzen, eine Basis-Klasse-Methode.
defaultdict
ist ein gutes Beispiel dafür:Beachten Sie, dass der geeignete Weg, dies zu tun ist, um verwenden Sie
super
anstatt direkt den Aufruf der Basisklasse. Etwa so:InformationsquelleAutor der Antwort Joel Cornett
Es hängt ganz von der Klasse und Methode.
Wenn Sie nur wollen, etwas zu tun, bevor/nach der Basis-Methode ausgeführt wird, oder rufen Sie es mit verschiedenen Argumenten, die Sie offensichtlich rufen Sie die base-Methode in Ihrer Unterklasse' - Methode.
Wenn Sie möchten, ersetzen Sie die ganze Methode, die Sie offensichtlich gar nicht nennen.
InformationsquelleAutor der Antwort ThiefMaster