Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen der Verwendung einer statischen Methode und einer Klassenmethode in Python?

sobes.tech KI

Antwort von AI

Eine statische Methode in Python ist eine Methode, die automatisch weder eine Instanz der Klasse (self) noch die Klasse selbst (cls) als erstes Argument übernimmt. Sie wird mit dem Dekorator @staticmethod deklariert und verhält sich wie eine normale Funktion, gehört aber logisch zur Klasse.

Eine Klassenmethode wird mit dem Dekorator @classmethod deklariert und erhält die Klasse (cls) als erstes Argument. Dadurch kann die Methode mit der Klasse selbst arbeiten, z.B. neue Instanzen erstellen oder Klassenattribute ändern.

Beispiel:

class MyClass:
    @staticmethod
    def static_method():
        print("Dies ist eine statische Methode")

    @classmethod
    def class_method(cls):
        print(f"Dies ist eine Klassenmethode, aufgerufen für {cls}")

MyClass.static_method()  # Gibt aus: Dies ist eine statische Methode
MyClass.class_method()   # Gibt aus: Dies ist eine Klassenmethode, aufgerufen für <class '__main__.MyClass'>

Verwenden Sie also eine statische Methode, wenn die Funktion nicht vom Zustand der Klasse oder ihrer Instanzen abhängt, und eine Klassenmethode, wenn Sie mit der Klasse selbst arbeiten müssen.