PaliSkill
Python avancé

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