PaliSkill
Python avancé

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