Sobes.tech
Junior — Middle

Kuidas erineb staatilise meetodi kasutamine klassi meetodist Pythonis?

sobes.tech AI

Vastus AI-lt

Statiline meetod Pythonis on meetod, mis automaatselt ei võta esimese argumendina vastu kas klassi eksemplari (self) ega klassi ennast (cls). Seda deklareerib @staticmethod dekorator ja see käitub nagu tavaline funktsioon, kuid loogiliselt kuulub klassile.

Klassi meetod deklareeritakse @classmethod dekoratoriga ja võtab esimese argumendina vastu klassi (cls). See võimaldab meetodil töötada klassiga ise, näiteks luues uusi eksemplare või muutes klassi omadusi.

Näide:

class MyClass:
    @staticmethod
    def static_method():
        print("See on statiline meetod")

    @classmethod
    def class_method(cls):
        print(f"See on klassi meetod, kutsutud {cls} jaoks")

MyClass.static_method()  # Kuvab: See on statiline meetod
MyClass.class_method()   # Kuvab: See on klassi meetod, kutsutud <class '__main__.MyClass'> jaoks

Seega, kasutage statilist meetodit, kui funktsioon ei sõltu klassi või selle eksemplaride seisundist, ja klassi meetodit, kui peate töötama klassiga ise.