Décorateur de méthode statique
Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 11 sur 64.
Le décorateur @staticmethod crée des méthodes qui n'ont pas besoin de self ou de la classe. Elles fonctionnent comme des fonctions régulières mais appartiennent à la classe.
Voici un exemple d'une classe avec des méthodes statiques :
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0Appelez les méthodes statiques en utilisant le nom de la classe :
result = MathHelper.add(5, 3)
print(result)
check = MathHelper.is_even(10)
print(check)Vous pouvez également les appeler à partir d'un objet :
helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)Sortie :
8
True
6Les méthodes statiques n'accèdent pas aux données d'instance ou de classe :
class Calculator:
brand = "Python Calc"
def __init__(self, owner):
self.owner = owner
@staticmethod
def multiply(x, y):
# Ne peut pas accéder à self.owner ou Calculator.brand
return x * yPoint clé : Utilisez @staticmethod lorsque vous avez besoin d'une fonction liée à la classe mais qui n'a pas besoin d'accéder à l'instance (self) ou aux données de la classe. Aucun paramètre self n'est nécessaire.
Aide-mémoire
Le décorateur @staticmethod crée des méthodes qui n'ont pas besoin de self ou de la classe. Elles fonctionnent comme des fonctions régulières mais appartiennent à la classe.
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0Appelez les méthodes statiques en utilisant le nom de la classe :
result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)Vous pouvez également les appeler à partir d'un objet :
helper = MathHelper()
result2 = helper.add(2, 4)Les méthodes statiques n'accèdent pas aux données de l'instance ou de la classe - aucun paramètre self n'est nécessaire.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Object Oriented Programming
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire