Курс Python → Методы classmethod и staticmethod

Метод classmethod в Python используется для создания методов, которые могут быть вызваны как для класса, так и для экземпляра этого класса. Когда мы используем classmethod, первым аргументом метода будет передан класс вместо экземпляра. Это позволяет нам работать с классом, а не с конкретным объектом. Объект метода classmethod сравнивается равным, когда обе функции равны, а связанные объекты одинаковы. Например, o1.method == o1.method верно, хотя это не один и тот же объект в памяти.

Еще одним полезным методом является staticmethod, который преобразует функцию в дескриптор «no-op», который возвращает функцию как есть. Это означает, что объекты метода никогда не создаются, поэтому сравнение с использованием оператора is будет верным. Таким образом, при использовании staticmethod мы можем вызывать методы класса, не создавая экземпляр класса.


class MyClass:
    @classmethod
    def class_method(cls):
        return cls

    @staticmethod
    def static_method():
        return "This is a static method"

В приведенном примере мы создаем класс MyClass с методами class_method и static_method. Метод class_method является методом класса, который возвращает сам класс, а метод static_method является статическим методом, который возвращает строку. Оба метода могут быть вызваны как для класса, так и для экземпляра этого класса без необходимости создавать объект метода.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Функция pow() — возвести число в степень
  2. Удаление символа из строки
  3. Оператор space-invader
  4. Python: изменяемые и неизменяемые коллекции
  5. Особенности множеств в Python
  6. Метод setdefault() в Python
  7. Преобразование строки в число
  8. Работа с кортежами в Python
  9. Цикл for с enumerate() в Python
  10. IPython и Jupyter Notebook: руководство
  11. Проверка типов с использованием isinstance
  12. Печать месячного календаря
  13. Отладка регулярных выражений в Python
  14. Поиск шаблона в строке
  15. Функция count() в Python
  16. Проблема с изменяемыми аргументами
  17. Оператор in для Python
  18. Monkey Patching в Python
  19. Метод __irshift__ для побитового сдвига вправо
  20. Транспонирование 2D-массива с помощью zip
  21. Оператор * в Python
  22. Переопределение метода __lshift__
  23. Разделение строк в Python
  24. Функции в Python
  25. Работа с необработанными строками
  26. Форматирование строк в Python
  27. Разность множеств
  28. Создание уникального проекта
  29. Форматирование даты с strftime()
  30. Переопределение метода __eq__
  31. Оператор (*) в Python
  32. Python Ellipsis использование
  33. Вычисление разности множеств в Python
  34. Методы classmethod и staticmethod
  35. Возврат нескольких значений из функции
  36. Функция zip() — объединение последовательностей
  37. Модуль subprocess: запуск внешних команд
  38. Перевод эмодзи и эмотиконов.
  39. Lambda-функция в Python: использование с map() и sum()
  40. Метод getitem для доступа к элементам последовательности
  41. Сортировка в Python
  42. Тестирование модели в PyTorch
  43. Метод get для словаря

Marketello читают маркетологи из крутых компаний