Sobes.tech
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, ani cls (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.