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

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

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

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

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

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)

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