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.