Sobes.tech
Junior — Middle

Jaký je účel dekorátoru @staticmethod v Pythonu a v čem se liší od běžných metod třídy?

sobes.tech AI

Odpověď od AI

Dekorátor @staticmethod v Pythonu se používá k definování metody uvnitř třídy, která nezávisí na instanci třídy a automaticky nepřijímá parametr self.

Rozdíly od běžných metod:

  • Běžné metody přijímají jako první parametr self — odkaz na aktuální instanci třídy.
  • Statické metody nepřijímají self ani cls (odkaz na třídu).

To znamená, že statická metoda je jednoduše funkce, která je logicky spojena s třídou, ale nevyužívá její stav.

Příklad:

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

Statické metody jsou užitečné pro pomocné funkce, které mají smysl v kontextu třídy, ale nevyžadují přístup k jejím datům.