Sobes.tech
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.