Sobes.tech
Junior — Middle

Quelle est la fonction du décorateur @staticmethod en Python et en quoi se distingue-t-il des méthodes normales de la classe?

sobes.tech IA

Réponse de l'IA

Le décorateur @staticmethod en Python est utilisé pour définir une méthode à l’intérieur d’une classe qui ne dépend pas d’une instance de la classe et n’accepte pas automatiquement le paramètre self.

Différences avec les méthodes normales :

  • Les méthodes normales prennent en premier paramètre self — une référence à l’instance courante de la classe.
  • Les méthodes statiques ne prennent ni self ni cls (une référence à la classe).

Cela signifie qu’une méthode statique est simplement une fonction liée logiquement à la classe, mais qui n’utilise pas son état.

Exemple :

class MyClass:
    @staticmethod
    def static_method(x, y):
        return x + y

    def instance_method(self, x, y):
        return x * y

print(MyClass.static_method(3, 4))  # 7
obj = MyClass()
print(obj.instance_method(3, 4))   # 12

Les méthodes statiques sont utiles pour des fonctions utilitaires qui ont du sens dans le contexte de la classe, mais qui ne nécessitent pas d’accès à ses données.