Leçon 2 / 9 — Chapitre 2: POO : héritage et polymorphisme
super() : appeler le constructeur de la classe parente
Si Chien a besoin d'un attribut en plus de ceux d'Animal, elle doit redéfinir son propre __init__ — mais super() permet d'appeler celui de la classe parente au passage, plutôt que de dupliquer self.nom = nom.
class Animal:
def __init__(self, nom):
self.nom = nom
class Chien(Animal):
def __init__(self, nom, race):
super().__init__(nom)
self.race = race
rex = Chien("Rex", "Labrador")
print(rex.nom, rex.race)
Ce code affiche Rex Labrador. super().__init__(nom) appelle le __init__ d'Animal avec nom, qui affecte self.nom exactement comme si ce code était écrit directement dans Chien — puis self.race = race ajoute l'attribut propre à Chien.
Sans super().__init__(nom), il faudrait réécrire self.nom = nom dans Chien, dupliquant une logique déjà présente dans Animal — un risque si Animal.__init__ change un jour et que Chien n'est pas mis à jour en conséquence.
À vous de jouer : ajoutez un attribut race à Chien(Animal) via un __init__ qui appelle super().__init__(nom), puis créez un objet et affichez ses deux attributs.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès