Formation
90 min de lecture
Programmation orientΓ©e objet
π¦ Encapsulation et propriΓ©tΓ©s
Objectifs d'apprentissage
π― Objectifs :\n
1Comprendre l'encapsulation\n2. Utiliser des attributs privΓ©s\n3. CrΓ©er des propriΓ©tΓ©s (@property)\n4. Utiliser les setters et getters
Introduction
π L'encapsulation protΓ¨ge les donnΓ©es en les rendant privΓ©es.
Contenu thΓ©orique
Encapsulation :\n
PYTHON
\nclass CompteBancaire:\n def __init__(self):\n self._solde = 0 # Attribut protΓ©gΓ©\n self.__secret = 123 # Attribut privΓ©\n \n @property\n def solde(self):\n return self._solde\n \n @solde.setter\n def solde(self, valeur):\n if valeur >= 0:\n self._solde = valeur\nExemples pratiques
π» Exemple : Compte bancaire encapsulΓ©\n
PYTHON
\nclass CompteBancaire:\n def __init__(self, titulaire):\n self.titulaire = titulaire\n self.__solde = 0\n \n def deposer(self, montant):\n if montant > 0:\n self.__solde += montant\n return True\n return False\n \n def retirer(self, montant):\n if 0 < montant <= self.__solde:\n self.__solde -= montant\n return True\n return False\n \n @property\n def solde(self):\n return self.__solde\n\ncompte = CompteBancaire("Jean")\ncompte.deposer(1000)\nprint(compte.solde) # 1000\n# compte.__solde # Erreur ! Attribut privΓ©\nBonnes pratiques
1Utiliser _ pour attribut protΓ©gΓ©\nβ
2. Utiliser __ pour attribut privΓ©\nβ
3. Utiliser @property pour getter\nβ
4. Utiliser @setter pour validation
Pièges à éviter
AccΓ©der directement aux attributs privΓ©s\n
Utiliser les propriΓ©tΓ©s et mΓ©thodes publiques
RΓ©sumΓ©
Encapsulation : donnΓ©es privΓ©es\nβ
@property : getter\nβ
@setter : validation\nβ
__ : nom mangling (privΓ© strict)
Ressources supplΓ©mentaires
π docs.python.org/3/tutorial/classes.html#private-variables