Sobes.tech
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ú self ani cls (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.