¿Por qué usar el método de clase en lugar del método estático? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la diferencia entre @staticmethod y @classmethod? 23 respuestas

Sé lo que hacen y he visto muchos ejemplos de ambos, pero no he encontrado un solo ejemplo en el que tendría que usarclassmethod en lugar de reemplazarlo con unastaticmethod.

El ejemplo más común declassmethod He visto espara crear una nueva instancia de la clase en sí, como esta (ejemplo muy simplificado, no se usa el método atm. pero se entiende):

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

Esto devolvería una nueva instancia deFoo al llamarfoo = Foo.create_new(). Ahora por qué no puedo usar esto en su lugar:

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

Hace exactamente lo mismo, ¿por qué debería usar unclassmethod sobre unstaticmethod?

Respuestas a la pregunta(3)

Su respuesta a la pregunta