2.3Programmation orientée objet (classes, héritage, dunder)
__init__, __str__…).La programmation orientée objet (POO) est un changement de perspective majeur : on modélise le monde en objets qui regroupent des données (attributs) et des comportements (méthodes). Une classe est le moule ; l'objet en est une réalisation concrète. C'est le paradigme qui structure les grands programmes et la plupart des bibliothèques.
Vous découvrez la définition d'une classe (__init__, self), l'héritage (créer une classe spécialisée à partir d'une autre) et les méthodes spéciales « dunder » (comme __str__) qui rendent vos objets élégants. La POO peut dérouter au début : la pratique lève le voile.
Vocabulaire de la section
- Classe / objet
- La classe est le plan (moule) ; l'objet (instance) est une réalisation concrète créée à partir de ce plan.
- Attribut / méthode
- L'attribut est une donnée de l'objet (self.nom) ; la méthode est une fonction attachée à l'objet.
- __init__ / self
- __init__ est le constructeur, appelé à la création de l'objet ; self désigne l'objet courant, passé à chaque méthode.
- Héritage
- Une classe « enfant » hérite des attributs et méthodes d'une classe « parent », et peut les compléter ou les redéfinir.
- Méthode dunder
- Méthode à double underscore (__str__, __len__, __eq__) qui personnalise le comportement des objets avec les opérations Python.
À quoi sert un ensemble (set) ?
En pratique — Créer des classes et de l'héritage
- Définissez une classe Compte avec __init__(self, solde) et des méthodes depot(montant) et retrait(montant). Créez deux objets distincts.
- Ajoutez une méthode dunder __str__ pour un affichage lisible (print(mon_compte) → « Compte : 150 € »).
- Créez une classe CompteEpargne qui HÉRITE de Compte et ajoute un taux d'intérêt + une méthode ajouter_interets().
- Redéfinissez une méthode dans l'enfant (polymorphisme) et appelez celle du parent avec super().
Points clés à retenir
- La classe est le moule ; l'objet (instance) en est une réalisation.
- __init__ initialise l'objet ; self désigne l'objet courant.
- L'héritage permet à une classe enfant de réutiliser/étendre une classe parent.
- Les méthodes dunder (__str__…) intègrent vos objets aux mécanismes de Python.
Questions fréquentes
À quoi sert self exactement ?
self représente l'objet sur lequel on appelle la méthode. Il permet à chaque objet d'accéder à SES propres attributs (self.solde) indépendamment des autres. Python le passe automatiquement à l'appel : vous l'écrivez dans la définition, pas à l'appel.
La POO est-elle indispensable pour débuter ?
Pour de petits scripts, non : les fonctions suffisent. Mais dès que les programmes grandissent — et pour comprendre les bibliothèques (Django, etc.) qui l'utilisent partout — la POO devient essentielle. Investir ici paie sur le long terme.