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