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
selfouclsobligatoire. - 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