Junior — Middle
Aký je účel dekorátora @staticmethod v Pythone a v čom sa líši od bežných metód triedy?
sobes.tech AI
Odpoveď od AI
Dekorátor @staticmethod v Pythone sa používa na definovanie metódy v rámci triedy, ktorá nezávisí od inštancie triedy a automaticky neprijíma parameter self.
Rozdiely od bežných metód:
- Bežné metódy prijímajú ako prvý parameter
self— odkaz na aktuálnu inštanciu triedy. - Statické metódy neprijímajú
selfanicls(odkaz na triedu).
To znamená, že statická metóda je jednoducho funkcia, ktorá je logicky spojená s triedou, ale nevyužíva jej stav.
Prí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é metódy sú užitočné pre pomocné funkcie, ktoré majú zmysel v kontexte triedy, ale nevyžadujú prístup k jej dátam.