Sobes.tech
Junior — Middle

Aký je rozdiel medzi používaním statickej metódy a metódy triedy v Pythone?

sobes.tech AI

Odpoveď od AI

Statická metóda v Pythone je metóda, ktorá automaticky neprijíma ani inštanciu triedy (self), ani samotnú triedu (cls) ako prvý argument. Je deklarovaná pomocou dekorátora @staticmethod a správa sa ako bežná funkcia, ale logicky patrí k triede.

Metóda triedy je deklarovaná pomocou dekorátora @classmethod a prijíma triedu (cls) ako prvý argument. To umožňuje metóde pracovať s vlastnou triedou, napríklad vytváraním nových inštancií alebo zmenou vlastností triedy.

Príklad:

class MyClass:
    @staticmethod
    def static_method():
        print("Toto je statická metóda")

    @classmethod
    def class_method(cls):
        print(f"Toto je metóda triedy, volaná pre {cls}")

MyClass.static_method()  # Vytlačí: Toto je statická metóda
MyClass.class_method()   # Vytlačí: Toto je metóda triedy, volaná pre <class '__main__.MyClass'>

Použite teda statickú metódu, keď funkcia nezávisí od stavu triedy alebo jej inštancií, a metódu triedy, keď je potrebné pracovať s triedou samotnou.