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