Junior — Middle
Qual è la funzione del decoratore @staticmethod in Python e in cosa si differenzia dai metodi normali della classe?
sobes.tech AI
Risposta dell'AI
Il decoratore @staticmethod in Python viene utilizzato per definire un metodo all’interno di una classe che non dipende da un’istanza della classe e non accetta automaticamente il parametro self.
Differenze rispetto ai metodi normali:
- I metodi normali accettano come primo parametro
self— un riferimento all’istanza corrente della classe. - I metodi statici non accettano né
selfnécls(un riferimento alla classe).
Questo significa che un metodo statico è semplicemente una funzione logicamente collegata alla classe, ma che non utilizza il suo stato.
Esempio:
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
I metodi statici sono utili per funzioni di utilità che hanno senso nel contesto della classe, ma non richiedono accesso ai suoi dati.