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.