Junior — Middle
Was ist die Funktion des Dekorators @staticmethod in Python und wie unterscheidet er sich von normalen Klassenmethoden?
sobes.tech KI
Antwort von AI
Der Dekorator @staticmethod in Python wird verwendet, um eine Methode innerhalb einer Klasse zu definieren, die nicht von einer Instanz der Klasse abhängt und nicht automatisch den Parameter self akzeptiert.
Unterschiede zu normalen Methoden:
- Normale Methoden nehmen als ersten Parameter
self— eine Referenz auf die aktuelle Instanz der Klasse. - Statische Methoden nehmen weder
selfnochcls(eine Referenz auf die Klasse).
Das bedeutet, dass eine statische Methode einfach eine Funktion ist, die logisch mit der Klasse verbunden ist, aber ihren Zustand nicht nutzt.
Beispiel:
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 sind nützlich für Hilfsfunktionen, die im Kontext der Klasse sinnvoll sind, aber keinen Zugriff auf deren Daten benötigen.