Junior — Middle
Koja je razlika između korišćenja statičke metode i metode klase u Pythonu?
sobes.tech АИ
Одговор од АИ
Staticka metoda u Pythonu je metoda koja automatski ne prihvata ni instancu klase (self), ni samu klasu (cls) kao prvi argument. Deklariše se pomoću dekoratora @staticmethod i ponaša se kao obična funkcija, ali logički pripada klasi.
Metoda klase se deklarise pomoću dekoratora @classmethod i prima klasu (cls) kao prvi argument. To omogućava metodi da radi sa samom klasom, na primer, da kreira nove instance ili menja svojstva klase.
Primer:
class MyClass:
@staticmethod
def static_method():
print("Ovo je statička metoda")
@classmethod
def class_method(cls):
print(f"Ovo je metoda klase, pozvana za {cls}")
MyClass.static_method() # Ispisaće: Ovo je statička metoda
MyClass.class_method() # Ispisaće: Ovo je metoda klase, pozvana za <class '__main__.MyClass'>
Dakle, koristite statičku metodu kada funkcija nije zavisna od stanja klase ili njenih instanci, a metodu klase kada je potrebno raditi sa samom klasom.