L'héritage Python - l'appel des méthodes de classe de base à l'intérieur de la classe enfant?
Il me déroute comment je ne peux pas trouver une explication claire de ce n'importe où.
Pourquoi et quand avez-vous besoin d'appeler la méthode de la classe de base à l'intérieur du même nom de méthode de la classe fille?
class Child(Base):
def __init__(self):
Base.__init__(self)
def somefunc(self):
Base.somefunc(self)
Je devine que vous le faites quand vous ne voulez pas complètement remplacer la méthode dans la classe de base. est-ce vraiment tout ce qu'il y a ici?
source d'informationauteur user1369281 | 2012-05-02
Vous devez vous connecter pour publier un commentaire.
Habituellement, vous le faites lorsque vous souhaitez étendre les fonctionnalités par modifiying, mais pas complètement remplacer une méthode de classe de base.
defaultdict
est un bon exemple:Noter que la façon appropriée de le faire est de utiliser
super
au lieu de directement de l'appel de la classe de base. Comme:Il dépend entièrement de la classe et de la méthode.
Si vous voulez juste faire quelque chose avant/après la méthode de base s'exécute ou l'appeler avec des arguments différents, bien sûr vous appelez la méthode de base dans votre sous-classe de la méthode.
Si vous souhaitez remplacer l'ensemble de la méthode, de toute évidence vous ne l'appelez pas.