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.