Junior — Middle
Care este scopul decoratorului @staticmethod în Python și în ce se deosebește de metodele obișnuite ale clasei?
sobes.tech AI
Răspuns de la AI
Decoratoarea @staticmethod în Python este utilizată pentru a defini o metodă în interiorul unei clase care nu depinde de o instanță a clasei și nu acceptă automat parametrul self.
Diferențe față de metodele obișnuite:
- Metodele obișnuite acceptă ca primul parametru
self— o referință la instanța curentă a clasei. - Metodele statice nu acceptă nici
self, nicicls(o referință la clasă).
Aceasta înseamnă că o metodă statică este pur și simplu o funcție logic legată de clasă, dar care nu utilizează starea acesteia.
Exemplu:
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
Metodele statice sunt utile pentru funcții utilitare care au sens în contextul clasei, dar nu necesită acces la datele acesteia.