Sobes.tech
Junior — Middle

Explique les différences entre self et cls dans le contexte des méthodes de classe

sobes.tech IA

Réponse de l'IA

En Python, self et cls sont des conventions pour le premier paramètre des méthodes, mais ils ont des usages différents :

  • self est une référence à une instance spécifique de la classe. Il est utilisé dans les méthodes d'instance classiques pour accéder aux attributs et méthodes de cet objet.
  • cls est une référence à la classe elle-même, pas à une instance. Il est utilisé dans les méthodes de classe (marquées avec le décorateur @classmethod) pour travailler avec la classe dans son ensemble, par exemple, créer de nouvelles instances ou modifier les propriétés de la classe.

Exemple :

class MyClass:
    class_var = 0

    def __init__(self, value):
        self.instance_var = value

    def instance_method(self):
        print(f'Variable d''instance : {self.instance_var}')

    @classmethod
    def class_method(cls):
        print(f'Variable de classe : {cls.class_var}')

obj = MyClass(10)
obj.instance_method()  # appelle une méthode d'instance
MyClass.class_method()  # appelle une méthode de classe