Sobes.tech
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 self noch cls (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.