Junior
180
Kuidas implementeeritakse Pythonis staatilisi meetodeid?
Vastus AI-lt
sobes.tech AI
Statiline meetod ei ole seotud klassi eksemplariga ega iseendaga. See käitub nagu tavaline funktsioon, kuid asub klassi nimede ruumis.
Seda rakendatakse @staticmethod dekoratori abil.
class MyClass:
def __init__(self, value):
self.value = value
def instance_method(self):
# Eksemplari meetodil on juurdepääs self-le
print(f"Eksemplari meetod: {self.value}")
@classmethod
def class_method(cls):
# Klassimeetodil on juurdepääs klassile läbi cls
print(f"Klassi meetod: {cls.__name__}")
@staticmethod
def static_method(x, y):
# Statiline meetod ei saa automaatselt argumente (self või cls)
print(f"Statiline meetod: {x + y}")
# Statilise meetodi kutsumine
MyClass.static_method(5, 10)
# Seda saab kutsuda ka eksemplari kaudu, kuid see ei ole soovitatav
obj = MyClass(20)
obj.static_method(1, 2)
Peamised omadused:
- Ei võta esimese argumendina automaatselt
selfvõicls - Ei pääse ligi eksemplari või klassi atribuutidele
- Asub klassi nimede ruumis loogilise rühmitamise jaoks
- Seda saab kutsuda nii klassi kui ka eksemplari kaudu (kuigi kutsumine klassi kaudu on eelistatud)
Peamine eesmärk on abifunktsioonid, mis on seotud klassiga, kuid ei sõltu konkreetse eksemplari või klassi seisundist (näiteks abifunktsioonid, valideerijad, generaatorid, mis loogiliselt kuuluvad klassile).