Junior — Middle
Koja je svrha dekoratora @staticmethod u Pythonu i kako se razlikuje od običnih metoda klase?
sobes.tech АИ
Одговор од АИ
Dekorator @staticmethod u Python-u se koristi za definisanje metode unutar klase koja ne zavisi od instance klase i ne prihvata automatski parametar self.
Razlike u odnosu na obične metode:
- Obične metode prihvataju kao prvi parametar
self— referencu na trenutni primer klase. - Statičke metode ne prihvataju ni
selfnicls(referencu na klasu).
To znači da je statička metoda jednostavno funkcija koja je logički povezana sa klasom, ali ne koristi njeno stanje.
Primer:
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
Statičke metode su korisne za pomoćne funkcije koje imaju smisla u kontekstu klase, ali ne zahtevaju pristup njenim podacima.