Leçon 6 / 9 — Chapitre 3: POO : méthodes spéciales, propriétés et dataclasses
@property : accéder à une méthode comme un attribut
@property transforme une méthode en attribut en lecture seule : on y accède sans parenthèses, comme un simple attribut, alors qu'elle exécute réellement du code à chaque accès.
class Produit:
def __init__(self, prix, stock):
self.prix = prix
self.stock = stock
@property
def valeur_stock(self):
return self.prix * self.stock
p = Produit(5, 20)
print(p.valeur_stock)
Ce code affiche 100 : p.valeur_stock s'écrit sans parenthèses, contrairement à un appel de méthode classique comme p.valeur_stock() (vu au premier chapitre) — @property rend cette différence de syntaxe possible, tout en exécutant réellement le calcul à chaque accès.
Un avantage clé : la valeur reste toujours à jour, contrairement à un attribut calculé une seule fois et stocké.
p.stock = 30
print(p.valeur_stock)
Ce code affiche 150 : valeur_stock recalcule self.prix * self.stock à chaque accès, donc le changement de stock se reflète immédiatement, sans action supplémentaire.
À vous de jouer : transformez une méthode déjà écrite (comme valeur_stock) en propriété avec @property, et vérifiez qu'on y accède désormais sans parenthèses.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès