Sobes.tech
Junior — Middle

Kokia yra @staticmethod dekoratoriaus paskirtis Python ir kuo jis skiriasi nuo įprastų klasės metodų?

sobes.tech AI

Atsakymas iš AI

Python'e @staticmethod dekoratorius naudojamas apibrėžti metodą klasėje, kuris nepriklauso nuo klasės egzemplioriaus ir automatiškai nepriima self parametro.

Skirtumai nuo įprastų metodų:

  • Įprasti metodai priima kaip pirmą parametrą self — nuorodą į dabartinį klasės egzempliorių.
  • Statiniai metodai nepriima nei self, nei cls (nuorodos į klasę).

Tai reiškia, kad statinis metodas yra paprasta funkcija, logiškai susijusi su klase, bet nenaudoja jos būsenos.

Pavyzdys:

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

Statiniai metodai naudingi pagalbiniams funkcijoms, kurios turi prasmę klasės kontekste, bet nereikalauja prieigos prie jos duomenų.