Sobes.tech
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 self ni cls (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.