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é.