Retour au cours

Méthodes de classe et statiques (Quand utiliser quoi)

Programmation Python : Le Bootcamp de Zéro à Héros

Méthodes de classe et méthodes statiques

Outre les méthodes d'instance régulières, les classes peuvent avoir deux autres types de méthodes qui modifient la gestion de self.

1. Méthodes de classe (@classmethod)

  • Décorées avec @classmethod.
  • Prennent cls (par convention) comme premier argument, se référant à la classe elle-même, et non à l'instance.
  • Utilisées pour les méthodes d'usine (constructeurs alternatifs) ou les méthodes qui traitent des attributs au niveau de la classe.

python class Settings: DEFAULT_THEME = 'dark'

@classmethod
def get_default_theme(cls):
    # cls se réfère à la classe Settings
    return cls.DEFAULT_THEME

Accès via la classe, pas l'instance

print(Settings.get_default_theme()) # Sortie : dark

2. Méthodes statiques (@staticmethod)

  • Décorées avec @staticmethod.
  • Ne prennent aucun argument self ou cls obligatoire.
  • Ce sont des fonctions utilitaires regroupées dans une classe car elles appartiennent logiquement à la classe, mais elles n'interagissent ni avec les attributs de classe ni avec les attributs d'instance.

python class MathUtility: @staticmethod def add_numbers(a, b): return a + b

Appelées directement via le nom de la classe

print(MathUtility.add_numbers(10, 5)) # Sortie : 15