La programmation orientée objet (POO) regroupe dans une même entité des données et les opérations qui les manipulent. On décrit un modèle, la classe, puis on fabrique autant d’objets que nécessaire. C’est la manière naturelle d’implémenter en Python les structures de données de l’année : piles, files, arbres…

Une question sur ce cours ?
ULU, le tuteur d’ULUMINE, t’aide à partir de ce cours.
Objectifs
- Utiliser le vocabulaire de la POO : classe, objet, attribut, méthode
- Écrire une classe en Python avec un constructeur __init__
- Créer des objets et appeler leurs méthodes
- Comprendre qu’une variable contient une référence vers un objet
1. Classe, objet, attribut, méthode
Classe : Modèle qui décrit une famille d’objets : les données qu’ils possèdent (attributs) et les actions qu’ils savent faire (méthodes).
Objet (ou instance) : Exemplaire concret construit à partir d’une classe. Chaque objet possède ses propres valeurs d’attributs.
| Vocabulaire | Rôle | Exemple pour une classe Compte |
|---|---|---|
| Attribut | Donnée propre à chaque objet | titulaire, solde |
| Méthode | Fonction définie dans la classe, appliquée à un objet | deposer(montant), retirer(montant) |
| Constructeur | Méthode __init__ appelée à la création de l’objet | Compte("Lina", 100) |
2. Écrire une classe en Python
class Compte:
def __init__(self, titulaire, solde):
self.titulaire = titulaire
self.solde = solde
def deposer(self, montant):
self.solde = self.solde + montant
def retirer(self, montant):
if montant <= self.solde:
self.solde = self.solde - montant
return True
return False- Le mot-clé class introduit la classe ; par convention son nom commence par une majuscule.
- Le premier paramètre de chaque méthode, self, désigne l’objet sur lequel la méthode est appelée.
- self.solde est l’attribut solde de cet objet ; solde seul serait une simple variable locale.
c = Compte("Lina", 100) # appelle __init__
c.deposer(50) # équivaut à Compte.deposer(c, 50)
print(c.solde) # 150
print(c.retirer(500)) # False : solde insuffisant3. Objets et références
Une variable ne contient pas l’objet lui-même mais une référence vers lui. Après b = a, les deux variables désignent le même objet : une modification faite via b est visible via a.
a = Compte("Noé", 20)
b = a
b.deposer(10)
print(a.solde) # 30 : a et b désignent le même objet
c = Compte("Noé", 30)
print(a == c) # False : deux objets distincts4. Interface et encapsulation
L’interface d’une classe est l’ensemble des méthodes proposées à l’utilisateur. L’implémentation (attributs, détail du code) peut changer sans que les programmes utilisateurs soient modifiés, tant que l’interface est respectée : c’est le principe d’encapsulation.
Une même interface, deux implémentations
- Une classe Temps propose les méthodes avancer(secondes) et en_secondes().
- Implémentation 1 : trois attributs h, m, s.
- Implémentation 2 : un seul attribut total en secondes.
Un programme qui n’utilise que avancer et en_secondes fonctionne avec les deux versions.
À retenir
- Une classe est un modèle ; un objet est une instance de cette classe.
- Les attributs stockent l’état de l’objet ; les méthodes définissent son comportement.
- __init__ est le constructeur ; self désigne l’objet courant.
- Une variable contient une référence : b = a ne copie pas l’objet.
- L’interface (méthodes publiques) est séparée de l’implémentation.

Et maintenant, à toi !
Vérifie que tu as compris avec les exercices, puis révise avec la fiche.