Junior — Middle
Mis on @staticmethod dekoratsiooni eesmärk Pythonis ja kuidas see erineb tavalistest klassi meetoditest?
sobes.tech AI
Vastus AI-lt
Pythonis @staticmethod dekorators kasutatakse meetodi määratlemiseks klassi sees, mis ei sõltu klassi eksemplarist ja automaatselt ei võta vastu parameetrit self.
Erinevused tavalistest meetoditest:
- Tavalised meetodid võtavad esimese parameetrina
self— viite jooksvale klassi eksemplarile. - Staticsed meetodid ei võta vastu kas
selfegacls(viide klassile).
See tähendab, et staticsed meetod on lihtsalt funktsioon, mis on loogiliselt seotud klassiga, kuid ei kasuta selle olekut.
Näide:
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
Staticsed meetodid on kasulikud abifunktsioonide jaoks, mis on mõistlikud klassi kontekstis, kuid ei vaja juurdepääsu selle andmetele.