Зачем использовать метод класса вместо статического метода? [Дубликат]
На этот вопрос уже есть ответ здесь:
В чем разница между @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