Retour au cours

Encapsulation et décorateurs de propriété (`@property`)

Programmation Python : Le Bootcamp de Zéro à Héros

Encapsulation et Propriétés

L'encapsulation restreint l'accès direct à certains composants d'un objet (données), empêchant les modifications accidentelles et forçant l'interaction via des méthodes contrôlées (getters/setters).

Attributs privés (Convention)

Python n'impose pas de véritable confidentialité, mais par convention, les attributs préfixés par un souligné (_) sont considérés comme protégés/privés, signalant qu'ils ne devraient pas être accédés directement.

python class Student: def init(self, name, score): self.name = name self._score = score # Attribut protégé

Utilisation de @property (Getters Pythoniques)

Le décorateur @property vous permet de définir une méthode accessible comme un attribut. Cela permet d'avoir des attributs calculés et un contrôle sur l'accès aux données sans modifier le code appelant.

python class Circle: def init(self, radius): self._radius = radius

# La méthode getter
@property
def radius(self):
    return self._radius

# Attribut calculé accédé comme s'il s'agissait d'une variable stockée
@property
def area(self):
    return 3.14159 * (self._radius ** 2)

c = Circle(5)

Accès à area comme un attribut, pas une méthode :

print(f"Aire du cercle : {c.area}")