22/07/2026
âFormation Python â Leçon n°10 (Partie 7) : Les getters et les setters avec "" en Python â
â
âDans la partie prĂ©cĂ©dente, nous avons dĂ©couvert les attributs publics, protĂ©gĂ©s et privĂ©s.
â
âUne question se pose maintenant :
â
âđ€ Si un attribut est privĂ© ("__attribut"), comment peut-on le lire ou le modifier ?
â
âLa rĂ©ponse est simple : avec les getters et les setters.
â
â---
â
âđ C'est quoi un getter ?
â
âUn getter est une mĂ©thode qui permet de lire la valeur d'un attribut privĂ©.
â
âAu lieu d'accĂ©der directement Ă l'attribut, on passe par une mĂ©thode prĂ©vue pour cela.
â
âEn Python moderne, on crĂ©e un getter avec le dĂ©corateur "".
â
âExemple
â
âclass Personne:
â def __init__(self, nom):
â self.__nom = nom
â
â
â def nom(self):
â return self.__nom
â
â
âp = Personne("Exauce")
â
âprint(p.nom)
â
âRĂ©sultat
â
âExauce
â
âExplication
â
â- "__nom" est un attribut privĂ©.
â- La mĂ©thode "nom()" retourne sa valeur.
â- GrĂące Ă "", on peut Ă©crire simplement :
â
âprint(p.nom)
â
âau lieu de :
â
âprint(p.nom())
â
âCela rend le code plus simple et plus agrĂ©able Ă utiliser.
â
â---
â
âđ C'est quoi un setter ?
â
âUn setter est une mĂ©thode qui permet de modifier la valeur d'un attribut privĂ©.
â
âAvant de modifier cette valeur, on peut effectuer des vĂ©rifications.
â
âOn crĂ©e un setter avec :
â
â.setter
â
â---
â
âExemple
â
âclass Personne:
â def __init__(self, nom):
â self.__nom = nom
â
â
â def nom(self):
â return self.__nom
â
â .setter
â def nom(self, nouveau_nom):
â self.__nom = nouveau_nom
â
â
âp = Personne("Exauce")
â
âp.nom = "Marie"
â
âprint(p.nom)
â
âRĂ©sultat
â
âMarie
â
â---
â
âđ Explication du code
â
âLorsque tu Ă©cris :
â
âp.nom = "Marie"
â
âTu pourrais penser que Python modifie directement l'attribut privĂ©.
â
âEn rĂ©alitĂ©, Python appelle automatiquement la mĂ©thode :
â
â.setter
â
âCette mĂ©thode reçoit ""Marie"" dans le paramĂštre "nouveau_nom", puis met Ă jour l'attribut privĂ©.
â
â---
â
âđ Pourquoi utiliser un setter ?
â
âL'intĂ©rĂȘt principal est de contrĂŽler les nouvelles valeurs.
â
âPar exemple, on peut empĂȘcher un Ăąge nĂ©gatif.
â
âclass Personne:
â def __init__(self, age):
â self.__age = age
â
â
â def age(self):
â return self.__age
â
â .setter
â def age(self, valeur):
â if valeur < 0:
â print("L'Ăąge ne peut pas ĂȘtre nĂ©gatif.")
â else:
â self.__age = valeur
â
â
âp = Personne(20)
â
âp.age = -5
â
âprint(p.age)
â
âRĂ©sultat
â
âL'Ăąge ne peut pas ĂȘtre nĂ©gatif.
â20
â
âL'Ăąge n'a pas Ă©tĂ© modifiĂ©, car la nouvelle valeur Ă©tait incorrecte.
â
â---
â
âđŻ Ă retenir
â
ââ
Un getter permet de lire un attribut privé.
â
ââ
Un setter permet de modifier un attribut privé.
â
ââ
"" crée un getter.
â
ââ
".setter" crée un setter.
â
ââ
Les getters et les setters permettent de protéger les données et d'éviter les valeurs invalides.
â
âđĄ En Python moderne, on utilise presque toujours "" et "" pour rĂ©aliser l'encapsulation de maniĂšre propre et professionnelle.