I niedawno odkryte (przez StackOverflow), że do wywołania metody w klasie bazowej powinienem zadzwonić:Podczas wywoływania super() w klasie pochodnej, czy mogę przekazać self .__ class__?
super([[derived class]], self).[[base class method]]()
To dobrze, to działa. Jednak często znajduję się kopiowanie i wklejanie między klasami, gdy dokonuję zmiany i często zapominam naprawić argument klasy pochodnej do funkcji super().
Chciałbym uniknąć konieczności pamiętania, aby zmienić argument klasy pochodnej. Czy zamiast tego mogę po prostu użyć self.__class__
jako pierwszego argumentu funkcji super()?
Wydaje się działać, ale czy istnieją uzasadnione powody, dla których nie powinienem tego robić?
Doskonałe, bardzo jasne, wyjaśnienie, dzięki. –