Зачем использовать метод класса вместо статического метода? [Дубликат]

На этот вопрос уже есть ответ здесь:

В чем разница между @staticmethod и @classmethod? 23 ответа

Я знаю, что они делают, и яЯ видел много примеров обоих, но у меня нетЯ нашел один пример, где я должен был бы использоватьclassmethod вместо того, чтобы заменить его на.staticmethod

Самый распространенный пример того, как яclassmethodмы видели этодля создания нового экземпляра самого класса, как это (очень упрощенный пример, тамнет использования метода атм. Но ты получил идею):

class Foo:
    @classmethod
    def create_new(cls):
        return cls()

Это вернуло бы новый экземплярFoo при звонкеfoo = Foo.create_new(), Теперь, почему можноЯ просто использую это вместо:

class Foo:
    @staticmethod
    def create_new():
        return Foo()

Он делает то же самое, почему я должен когда-либо использоватьclassmethod через ?staticmethod

Ответы на вопрос(3)

Ваш ответ на вопрос