Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
super() et initialisation
Quand une classe enfant a son propre __init__, elle doit appeler le __init__ du parent avec super().__init__(...). Sinon, les attributs du parent ne seront pas initialises.
super() te donne acces a la classe parente. C'est la facon propre de remonter dans la hierarchie :
class Personne: def __init__(self, nom, age): self.nom = nom self.age = age
class Employe(Personne): def __init__(self, nom, age, poste): super().__init__(nom, age) self.poste = poste
Par convention, on appelle super().__init__() en premier dans le __init__ de la classe enfant.
Crée une hierarchie a trois niveaux : - Personne(nom, age) - Employe(Personne) qui ajoute un identifiant (id_employe) - Manager(Employe) qui ajoute une equipe (liste de noms)
Ajoute une méthode taille_equipe() sur Manager qui renvoie le nombre de personnes dans l'equipe.
Exemple : m = Manager('Alice', 35, 'E001', ['Bob', 'Charlie']) m.nom renvoie 'Alice' m.taille_equipe() renvoie 2
Tests (3/4)
Attributs Personne
m = Manager('Alice', 35, 'E001', ['Bob'])
assert m.nom == 'Alice' and m.age == 35
Attribut Employe
m = Manager('Alice', 35, 'E001', ['Bob'])
assert m.id_employe == 'E001'