PaliSkill
Python avancé

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