Objectifs de cette leçon
- Protéger les attributs d'une classe
- Utiliser les propriétés getter et setter
- Comprendre l'encapsulation et le masquage
Encapsulation : le coffre-fort des données 🔒
L'encapsulation est le principe qui dit : les données d'un objet sont privées, on y accède uniquement via ses méthodes. Comme un coffre-fort : tu ne vois pas le mécanisme, tu utilises juste la molette et la clé.
1. Pourquoi cacher les données ? 🤔
Imagine une console de jeux :
Sans encapsulation : tu devrais brancher des fils directement sur les circuits pour faire sauter Mario. Avec encapsulation : tu appuies simplement sur un bouton. La console s'occupe du reste !
C'est pareil en programmation :
2. Getter et Setter : les portiers 🚪
Exécution pas à pas
pseudo1/35▶️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 # Public self._solde = 0 # Privé (convention) # Getter @property def solde(self): return self._solde # Setter avec vérification def deposer(self, montant): if montant > 0: self._solde += montant else: print("Erreur : montant invalide") def retirer(self, montant): if 0 < montant <= self._solde: self._solde -= montant return montant else: print("Erreur : solde insuffisant") return 0 compte = CompteBancaire("Alice") compte.deposer(1000) print(compte.solde) # 1000 ✅ compte.deposer(-500) # Erreur : montant invalide ❌ compte.retirer(2000) # Erreur : solde insuffisant ❌ print(compte.retirer(300)) # 300 ✅ print(compte.solde) # 700 ✅
3. Pourquoi c'est génial ? 🌟
Exemple concret : Imagine qu'on veuille ajouter des logs (traces) à chaque modification du solde. Avec l'encapsulation, on modifie juste
déposer()etretirer()— le reste du programme ne change PAS !
Exercice pour toi 🎯
Crée une classe Thermostat qui :
- A une température privée
_temperature - Ne permet pas de descendre en dessous de 0°C
- Ne permet pas de dépasser 40°C
- Affiche un message d'erreur si la température demandée est hors limite
Exécution pas à pas
pseudo1/16▶️CLASSE ThermostatCLASSE ThermostatLe programme exécute cette action, puis passe à la suivante.Le programme exécute cette instruction, puis passe à la suivante.
💡 Rappelle-toi : Un bon code, c'est comme une bonne boîte : on voit ce qu'elle fait, pas comment elle le fait.
Exécution pas à pas
État de la mémoire
2 variables⚡ Simulateur — Encapsulation
Étape 1/11- 🌍 Public : accessible directement
- 🔒 Privé : accessible uniquement via méthodes
- Getter : lit une valeur privée
- Setter : modifie une valeur privée AVEC contrôle
La classe CompteBancaire encapsule ses données. _solde est privé.