Sobes.tech
Junior — Middle

V čem spočívá rozdíl mezi použitím statické metody a metody třídy v Pythonu?

sobes.tech AI

Odpověď od AI

Statická metoda v Pythonu je metoda, která automaticky nepřijímá ani instanci třídy (self), ani samotnou třídu (cls) jako první argument. Je deklarována pomocí dekorátoru @staticmethod a chová se jako běžná funkce, ale logicky patří ke třídě.

Metoda třídy je deklarována pomocí dekorátoru @classmethod a přijímá třídu (cls) jako první argument. To umožňuje metodě pracovat s vlastní třídou, například vytvářením nových instancí nebo změnou vlastností třídy.

Příklad:

class MyClass:
    @staticmethod
    def static_method():
        print("Toto je statická metoda")

    @classmethod
    def class_method(cls):
        print(f"Toto je metoda třídy, volaná pro {cls}")

MyClass.static_method()  # Vytiskne: Toto je statická metoda
MyClass.class_method()   # Vytiskne: Toto je metoda třídy, volaná pro <class '__main__.MyClass'>

Použijte tedy statickou metodu, když funkce nezávisí na stavu třídy nebo jejích instancí, a metodu třídy, když je potřeba pracovat s vlastní třídou.