Exercices POO super() et initialisation
🎉

Bravo!

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

e = Employe('Alice', 30, 'dev')
e.nom vaut 'Alice'
e.poste vaut 'dev'

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'
Taille equipe
m = Manager('Alice', 35, 'E001', ['Bob', 'Charlie'])
assert m.taille_equipe() == 2

+ 0 tests cachés

Indices (3 disponibles)

solution.py