Python Language
Dérogation de méthode
Recherche…
Méthode de base
Voici un exemple de substitution de base en Python (pour des raisons de clarté et de compatibilité avec Python 2 et 3, en utilisant une nouvelle classe de style et en print avec () ):
class Parent(object):
def introduce(self):
print("Hello!")
def print_name(self):
print("Parent")
class Child(Parent):
def print_name(self):
print("Child")
p = Parent()
c = Child()
p.introduce()
p.print_name()
c.introduce()
c.print_name()
$ python basic_override.py
Hello!
Parent
Hello!
Child
Lorsque la classe Child est créée, elle hérite des méthodes de la classe Parent . Cela signifie que toutes les méthodes de la classe parente auront la classe enfant. Dans l'exemple, le introduce est défini pour la classe Child car il est défini pour Parent , même s'il n'est pas défini explicitement dans la définition de classe de Child .
Dans cet exemple, la substitution se produit lorsque Child définit sa propre méthode print_name . Si cette méthode n'a pas été déclarée, alors c.print_name() aurait imprimé "Parent" . Toutefois, l' Child a la overriden Parent définition de l » print_name , et maintenant à appeler c.print_name() , le mot "Child" est imprimé.