Проще будет так:
1. staticmethod - это метод вложенный в класс для удобства. Например ты создаешь класс со всякими утилитами или вспомогательными методами. Проще будет вызывать методы из этого класса без того, чтобы создавать экземпляр самого класса, да и избыточно будет Соответственно такие методы не должны влиять на сам класс.
2. classmethod - это методы принадлежащие классу и, в отличие от staticmethod-ов могут влиять на сам класс, могут изменять его поведение, классовые атрибуты и т.д. Все изменения в классе становятся видимыми и во всех экземплярах этого класса.