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, neicls(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ų.