Sobes.tech
Junior — Middle

Mi a célja a @staticmethod dekorátornak Pythonban, és miben különbözik a szokásos osztálymódszerektől?

sobes.tech MI

Válasz az MI-től

A Python @staticmethod dekorátorát arra használják, hogy egy olyan metódust definiáljanak egy osztályon belül, amely nem függ az osztály példányától, és nem fogad automatikusan self paramétert.

A normál módszerektől való különbség:

  • A normál módszerek első paramétere self — hivatkozás az aktuális példányra.
  • A statikus módszerek nem fogadnak self vagy cls paramétert.

Ez azt jelenti, hogy a statikus módszer egyszerűen egy olyan függvény, amely logikailag kapcsolódik az osztályhoz, de nem használja annak állapotát.

Példa:

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

A statikus módszerek hasznosak segédfüggvényekhez, amelyek értelmet nyernek az osztály kontextusában, de nem igényelnek hozzáférést az adataihoz.