PaliSkill
Python avancé

Leçon 8 / 9 — Chapitre 2: POO : héritage et polymorphisme

Attributs supplémentaires dans une sous-classe

Une sous-classe peut ajouter des attributs qui n'existent que pour elle, absents de la classe parente et donc invisibles pour les objets créés directement à partir de celle-ci.

class Animal:
    def __init__(self, nom):
        self.nom = nom

class Chien(Animal):
    def __init__(self, nom, race):
        super().__init__(nom)
        self.race = race
        self.dresse = False

    def dresser(self):
        self.dresse = True

rex = Chien("Rex", "Labrador")
rex.dresser()
print(rex.dresse)

Ce code affiche True : dresse n'existe que dans Chien, initialisé à False puis modifié par dresser() — un objet Animal créé directement n'a ni race ni dresse, et tenter d'y accéder lèverait une AttributeError.

generique = Animal("Créature")
print(generique.race)

Ce dernier code lève effectivement une AttributeError, car race n'a jamais été défini pour un objet Animal créé directement : cet attribut n'existe que sur les objets Chien, qui l'ajoutent dans leur propre __init__.

À vous de jouer : ajoutez un attribut propre à une sous-classe, absent de la classe parente, et vérifiez qu'y accéder depuis un objet de la classe parente lève bien une erreur.

🔒

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