Menu
Coddy logo textTech

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 == 0

Appelez 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
6

Les 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 * y

Point 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 == 0

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

quiz iconTestez-vous

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