2.3 · Programmation orientée objet (classes, héritage, dunder)

Niveau 2 · Structures de données & POO

2.3Programmation orientée objet (classes, héritage, dunder)

Objectif : créer des classes, l'héritage et les méthodes spéciales (__init__, __str__…).
Temps estimé : 18 min

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.
Vérifiez votre compréhension

À quoi sert un ensemble (set) ?

Programmation orientée objet (classes, héritage, dunder)
Vidéo hébergée sur YouTube — ouvrir dans un nouvel onglet ↗
Corey Schafer — « Python OOP » (série de référence)
Cliquer pour voir les résultats à jour ↗

En pratique — Créer des classes et de l'héritage

  1. Définissez une classe Compte avec __init__(self, solde) et des méthodes depot(montant) et retrait(montant). Créez deux objets distincts.
  2. Ajoutez une méthode dunder __str__ pour un affichage lisible (print(mon_compte) → « Compte : 150 € »).
  3. Créez une classe CompteEpargne qui HÉRITE de Compte et ajoute un taux d'intérêt + une méthode ajouter_interets().
  4. Redéfinissez une méthode dans l'enfant (polymorphisme) et appelez celle du parent avec super().
Vous modélisez des concepts en classes, créez des objets, utilisez l'héritage et rendez vos objets lisibles avec __str__ : les fondations de la POO.

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.

Autres ressources