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í
selfanicls(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.