Junior — Middle
Jaki jest cel dekoratora @staticmethod w Pythonie i czym różni się od zwykłych metod klasy?
sobes.tech AI
Odpowiedź od AI
Dekorator @staticmethod w Pythonie służy do definiowania metody wewnątrz klasy, która nie zależy od instancji klasy i nie przyjmuje automatycznie parametru self.
Różnice w porównaniu do zwykłych metod:
- Zwykłe metody przyjmują jako pierwszy parametr
self— odwołanie do bieżącej instancji klasy. - Metody statyczne nie przyjmują ani
self, anicls(odwołania do klasy).
Oznacza to, że metoda statyczna to po prostu funkcja, która jest logicznie powiązana z klasą, ale nie korzysta z jej stanu.
Przykład:
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
Metody statyczne są przydatne dla funkcji narzędziowych, które mają sens w kontekście klasy, ale nie wymagają dostępu do jej danych.