Leçon 8 / 10 — Chapitre 1: POO : les fondamentaux
Modifier un attribut directement vs via une méthode
Un attribut d'objet reste accessible et modifiable directement depuis l'extérieur de la classe, sans passer par une méthode — contrairement à d'autres langages, Python ne restreint pas cet accès par défaut.
class Produit:
def __init__(self, nom, prix, stock):
self.nom = nom
self.prix = prix
self.stock = stock
riz = Produit("riz", 5, 20)
riz.stock = riz.stock - 5
print(riz.stock)
Ce code affiche 15 : modifier riz.stock directement depuis l'extérieur fonctionne, exactement comme modifier une clé de dictionnaire.
Passer par une méthode dédiée, comme vendre(self, quantite) vue précédemment, reste néanmoins préférable dès que la modification implique une règle métier à respecter (par exemple, refuser un stock négatif) : une méthode centralise cette règle à un seul endroit, alors qu'un accès direct laisse chaque appelant libre de l'oublier.
class Produit:
def vendre(self, quantite):
if quantite > self.stock:
raise ValueError("Stock insuffisant")
self.stock = self.stock - quantite
Cette version refuse une vente impossible, une vérification qu'un accès direct riz.stock = riz.stock - quantite ne ferait jamais respecter.
À vous de jouer : comparez modifier stock directement et via une méthode vendre qui vérifie d'abord la quantité disponible, avec raise ValueError en cas de dépassement.
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