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.