Ich weiß, was sie tun, und ich habe viele Beispiele von beiden gesehen, aber ich habe kein einziges Beispiel gefunden, wo ich verwenden müsste, anstatt es durch eine staticmethod
zu ersetzen.Warum Klassenmethode anstelle von staticmethod?
Das häufigste Beispiel für classmethod
ich gesehen habe, ist für sich eine neue Instanz der Klasse erstellen, wie diese (sehr vereinfachtes Beispiel, gibt es keine Verwendung des Verfahrens atm aber Sie bekommen die Idee.):
Foo
Rückkehr
class Foo:
@classmethod
def create_new(cls):
return cls()
wenn foo = Foo.create_new()
Aufruf. Nun, warum nicht ich dies nur statt:
class Foo:
@staticmethod
def create_new():
return Foo()
Es ist genau die gleiche, warum soll ich jemals ein classmethod
über ein staticmethod
verwenden?
@KevinBrydon gibt es keine * Antwort * auf OPs Frage auf dieser Seite, aber es könnte in den Kommentaren da sein. Ich weiß nicht, ob das ausreicht, um dies zu schließen, obwohl – jamylak
Diese Frage ist kein Duplikat der verknüpften Frage. Die Antworten auf die verknüpfte Frage behandeln nicht, WARUM Sie Klassenmethoden gegenüber statischen Methoden verwenden oder umgekehrt. – spacetyper