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
selfvagyclsparamé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.