Методы экземпляра (instance method) работают с данными конкретного объекта, методы класса (class method) — с данными самого класса, а статические методы (static method) никак не связаны ни с экземпляром, ни с классом.
Методы экземпляра:
self (ссылку на экземпляр).self.attribute) и другим методам экземпляра.python
Методы класса:
@classmethod.cls (ссылку на сам класс).cls.class_attribute) и другим методам класса.python
Статические методы:
@staticmethod.self, ни cls.python
Различия в таблице:
| Характеристика | Метод экземпляра | Метод класса | Статический метод |
|---|---|---|---|
| Первый аргумент | self | cls | Нет |
| Доступ к атрибутам | Экземпляра и класса | Класса | Нет |
| Декоратор | Нет | @classmethod | @staticmethod |
| Использование | Работа с данными объекта | Работа с данными класса, альтернативные конструкторы | Вспомогательные функции, не зависящие от состояния |