Objectifs de cette leçon
- Définir une classe avec attributs et méthodes
- Créer des instances d'une classe
- Comprendre le constructeur __init__
Classes et objets 🏗️
Une classe c'est comme un moule à gâteaux : tu définis une forme une fois, et tu peux créer autant de gâteaux identiques que tu veux !
1. De la recette au gâteau : classe → objet 🎂
Exécution pas à pas
pseudo1/17▶️CLASSE ChienCLASSE ChienLe programme exécute cette action, puis passe à la suivante.Le programme exécute cette instruction, puis passe à la suivante.
class Chien: """Plan de construction pour des chiens.""" def __init__(self, nom, age): """Constructeur : appelé à la création.""" self.nom = nom self.age = age def aboyer(self): """Comportement.""" return f"{self.nom} dit: Wouf !" def __str__(self): return f"Chien({self.nom}, {self.age} ans)"
2. Créer et utiliser des objets 🎮
Exécution pas à pas
pseudo1/9▶️' Création d'instances' Création d'instancesLe programme exécute cette action, puis passe à la suivante.Le programme exécute cette instruction, puis passe à la suivante.
# Création d'instances medor = Chien("Médor", 3) rex = Chien("Rex", 5) # Utilisation print(medor.aboyer()) # Médor dit: Wouf ! print(rex.aboyer()) # Rex dit: Wouf ! print(medor) # Chien(Médor, 3 ans) print(medor.nom) # Médor (accès direct)
3. Attributs privés : le coffre-fort 🔐
Parfois, on ne veut pas qu'on modifie directement les données. On les protège :
Exécution pas à pas
pseudo1/24▶️CLASSE CompteBancaireCLASSE CompteBancaireLe programme exécute cette action, puis passe à la suivante.Le programme exécute cette instruction, puis passe à la suivante.
class CompteBancaire: def __init__(self, titulaire): self.titulaire = titulaire self._solde = 0 # Convention : protégé (ne pas toucher !) def deposer(self, montant): if montant > 0: self._solde += montant def retirer(self, montant): if 0 < montant <= self._solde: self._solde -= montant return montant return 0 @property def solde(self): """Propriété en lecture seule.""" return self._solde compte = CompteBancaire("Alice") compte.deposer(1000) print(compte.solde) # 1000 # compte._solde = 9999 # Possible mais TRÈS déconseillé !
💡 L'encapsulation en action : on ne peut PAS modifier
_soldedirectement. On doit passer pardeposer()etretirer()qui vérifient les règles métier.
4. Schéma récapitulatif 📊
💡 À retenir : La classe = le plan. L'objet = la réalisation concrète. On peut créer des MILLIERS d'objets à partir d'une seule classe !
Exécution pas à pas
État de la mémoire
4 variables⚡ Simulateur — Classes et objets
Étape 1/7- Classe = plan (définit la structure)
- Instance = objet créé à partir du plan
- Chaque instance a ses propres valeurs
- Constructeur = initialise les attributs
La classe Chien est définie avec ses attributs et méthodes.