Sobes.tech
Junior — Middle

Spiega le differenze tra self e cls nel contesto dei metodi di classe

sobes.tech AI

Risposta dell'AI

In Python, self e cls sono convenzioni per il primo parametro dei metodi, ma hanno scopi diversi:

  • self è un riferimento a un'istanza specifica della classe. Viene usato nei metodi di istanza normali per accedere agli attributi e ai metodi di quell'oggetto.
  • cls è un riferimento alla classe stessa, non a un'istanza. Viene usato nei metodi di classe (contrassegnati con il decoratore @classmethod) per lavorare con la classe nel suo insieme, ad esempio, creare nuove istanze o modificare le proprietà della classe.

Esempio:

class MyClass:
    class_var = 0

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

    def instance_method(self):
        print(f'Variabile di istanza: {self.instance_var}')

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

obj = MyClass(10)
obj.instance_method()  # chiama un metodo di istanza
MyClass.class_method()  # chiama un metodo di classe