classmethod получает первым аргументом cls — ссылку на класс, а не на экземпляр. Обычно используется как альтернативный конструктор: User.from_dict(data). staticmethod не получает ни self, ни cls — это просто функция, привязанная к классу для логической группировки. classmethod учитывает наследование — cls будет подклассом, если вызван из подкласса. staticmethod — нет, он одинаков для всей иерархии. Если метод не использует ни экземпляр, ни класс — staticmethod, если использует класс — classmethod.
В чём разница между classmethod и staticmethod?
Middle
357 просмотровAFK Offer AI
Что полезного в модуле collections?