Retour au cours

méthodes et attributs : instance, classe, statiques

il existe plusieurs types de méthodes et d’attributs selon leur lien avec l’objet ou la classe.

objectifs

  • comprendre méthode d’instance, de classe, statique
  • utiliser attributs de classe vs instance

explication détaillée

  • méthode d’instance : def m(self, ...)
  • méthode de classe : @classmethod avec cls comme premier arg
  • méthode statique : @staticmethod sans self ni cls
  • attribut de classe partagé par toutes les instances
  • attribut d’instance propre à chaque objet

exemples exécutables

class Exemple:
    compteur = 0  # attribut de classe

    def __init__(self):
        Exemple.compteur += 1

    def instance_method(self):
        return f"appel sur instance {self}"

    @classmethod
    def class_method(cls):
        return f"instances créées : {cls.compteur}"

    @staticmethod
    def static_method():
        return "méthode statique appelée"

e1 = Exemple()
print(e1.instance_method())
print(Exemple.class_method())
print(Exemple.static_method())

bonnes pratiques

  • choisir le bon type de méthode selon l’usage
  • ne pas abuser des attributs de classe pour stocker données mutables

pièges courants

  • oublier @classmethod ou @staticmethod
  • modifier un attribut de classe via une instance par erreur

exercices

  1. créer une classe qui compte ses instances.
  2. ajouter une méthode statique qui affiche un message fixe.
  3. tester appel via la classe et via l’instance.