TP Python – Niveau Débutant et
Intermédiaire
Page de couverture
Titre : Travaux Pratiques Python – Séance 3
Thème : Pratique de l’héritage des classes en Python
Niveau : Débutant et Intermédiaire
Enseignant : [Votre Nom]
Date : [Date du TP]
Sommaire
1. Objectifs
2. Cours
3. Activités pratiques
o Activité 1 : Comprendre l’héritage
o Activité 2 : Implémentation de l’héritage
o Activité 3 : Extension et tests
4. Exemple de correction
5. Conclusion
1. Objectifs
Comprendre le principe de l’héritage en programmation orientée objet.
Savoir créer des classes dérivées et réutiliser du code existant.
Étendre et spécialiser des classes de base.
Appliquer l’héritage dans des cas pratiques.
2. Cours
Qu’est-ce que l’héritage ?
L’héritage permet à une classe (dite « classe fille » ou « sous-classe ») de récupérer les attributs
et méthodes d’une autre classe (appelée « classe mère » ou « super-classe »).
Cela favorise :
La réutilisation du code.
La hiérarchisation des concepts.
L’extension facile de fonctionnalités.
Syntaxe de l’héritage en Python
class ClasseMere:
pass
class ClasseFille(ClasseMere):
pass
Redéfinition et spécialisation
Une sous-classe peut :
Ajouter de nouveaux attributs et méthodes.
Redéfinir des méthodes de la classe mère (surcharge).
Utilisation du mot-clé super() pour faire appel au constructeur ou aux méthodes de la classe
mère.
3. Activités pratiques
Activité 1 : Comprendre l’héritage (20 min)
À partir du concept de Personne, identifiez des sous-classes possibles et leurs spécificités :
Personne (nom, prénom)
o Etudiant (filière, niveau)
o Professeur (matière, grade)
Faites un schéma UML rapide représentant cette hiérarchie.
Activité 2 : Implémentation de l’héritage (40 min)
1. Implémentez la classe Personne avec les attributs et une méthode afficher_infos().
2. Créez les classes Etudiant et Professeur qui héritent de Personne.
3. Ajoutez des attributs propres à chaque sous-classe et redéfinissez la méthode
afficher_infos() pour inclure les informations spécifiques.
Exemple :
class Personne:
def __init__(self, nom, prenom):
self.nom = nom
self.prenom = prenom
class Etudiant(Personne):
def __init__(self, nom, prenom, filiere):
super().__init__(nom, prenom)
self.filiere = filiere
Activité 3 : Extension et tests (60 min)
1. Ajoutez une méthode presentation() dans Personne et redéfinissez-la dans Etudiant
et Professeur.
2. Créez des objets pour tester les différentes classes et vérifiez la cohérence des données.
3. Proposez une amélioration libre (ex : ajout d’un attribut ou d’une méthode
supplémentaire).
4. Exemple de correction
class Personne:
def __init__(self, nom, prenom):
self.nom = nom
self.prenom = prenom
def afficher_infos(self):
print(f"Nom : {self.nom}, Prénom : {self.prenom}")
class Etudiant(Personne):
def __init__(self, nom, prenom, filiere):
super().__init__(nom, prenom)
self.filiere = filiere
def afficher_infos(self):
super().afficher_infos()
print(f"Filière : {self.filiere}")
class Professeur(Personne):
def __init__(self, nom, prenom, matiere):
super().__init__(nom, prenom)
self.matiere = matiere
def afficher_infos(self):
super().afficher_infos()
print(f"Matière : {self.matiere}")
5. Conclusion
À l’issue de ce TP, vous savez :
Concevoir et implémenter une hiérarchie de classes.
Utiliser l’héritage pour éviter la redondance.
Étendre et personnaliser des classes existantes.
Astuce : Pensez toujours à bien structurer vos classes pour faciliter leur extension future et leur
réutilisation.