Короткий ответ Методы экземпляра первым аргументом получают self, методы класса — cls, а статические методы не получают ни того ни другого. Выбор зависит от того, какие данные нужны методу: экземпляра, класса или никакие. Как это работает подробнее Метод экземпляра. Первым параметром принимает self — ссылку на конкретный объект — и может читать и менять атрибуты этого экземпляра. Метод класса. Помечается @classmethod, первым параметром получает cls — сам класс — и работает с данными уровня класса. Альтернативный конструктор. Метод класса может возвращать экземпляры класса и вызывается как от самого класса, так и от экземпляра, в обоих случаях получая правильный класс. Статический метод. @staticmethod не принимает ни self, ни cls — это функция, логически связанная с предметной областью класса, для утилитарных операций. Пример кода Что использовать на практике Альтернативные конструкторы. Через @classmethod добавляй удобные способы создания экземпляров, например из строки или словаря. Утилиты. Вспомогательные ф