Junior — Middle
Wat is het doel van de @staticmethod-decorator in Python en hoe verschilt het van gewone klasse-methoden?
sobes.tech AI
Antwoord van AI
De decorateur @staticmethod in Python wordt gebruikt om een methode binnen een klasse te definiëren die niet afhankelijk is van een instantie van de klasse en automatisch geen self parameter accepteert.
Verschillen met gewone methoden:
- Gewone methoden accepteren als eerste parameter
self— een verwijzing naar de huidige instantie van de klasse. - Statische methoden accepteren geen
selfofcls(een verwijzing naar de klasse).
Dit betekent dat een statische methode gewoon een functie is die logisch verbonden is met de klasse, maar haar toestand niet gebruikt.
Voorbeeld:
class MyClass:
@staticmethod
def static_method(x, y):
return x + y
def instance_method(self, x, y):
return x * y
print(MyClass.static_method(3, 4)) # 7
obj = MyClass()
print(obj.instance_method(3, 4)) # 12
Statische methoden zijn handig voor hulpfuncties die zinvol zijn in de context van de klasse, maar geen toegang tot haar gegevens vereisen.