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