PaliSkill
Python avancé

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