Leçon 2 / 10 — Chapitre 1: POO : les fondamentaux
Attributs d'instance et attributs de classe
Un attribut défini dans __init__ avec self. est un attribut d'instance : propre à chaque objet, comme vu à la leçon précédente. Un attribut de classe, défini directement dans le corps de la classe, est en revanche partagé par tous les objets de cette classe.
class Produit:
devise = "$"
def __init__(self, nom, prix):
self.nom = nom
self.prix = prix
riz = Produit("riz", 5)
huile = Produit("huile", 8)
print(riz.devise, huile.devise)
Ce code affiche $ $ : devise n'est écrit qu'une seule fois dans la classe, mais accessible depuis chaque objet — riz.devise et huile.devise pointent tous deux vers la même valeur partagée.
Modifier un attribut de classe via la classe elle-même affecte tous les objets qui n'ont pas leur propre valeur locale :
Produit.devise = "€"
print(riz.devise)
Ce code affiche € : comme aucun des deux objets n'a de devise propre (définie avec self.devise), ils continuent de lire la valeur partagée de la classe, désormais modifiée.
À vous de jouer : ajoutez un attribut de classe categorie = "alimentation" à Produit, créez deux objets, et vérifiez qu'ils partagent bien la même valeur.
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