Курс 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. Объединение словарей в Python
  2. Список переменных с %who
  3. Избегайте пустого списка
  4. Функция eval() в Python
  5. Декодирование строк в Python
  6. Метод __iand__ для пользовательских классов
  7. Сортировка с параметром key
  8. Progress с библиотекой tqdm
  9. Использование эмодзи в Python
  10. Декораторы в Python
  11. Хеширование паролей с солью
  12. Переопределение оператора % для объектов
  13. inspect в Python: анализ кода
  14. Сериализация объектов в Python
  15. Сравнение строк в Python
  16. Поиск наиболее частого элемента в списке
  17. Поиск всех индексов подстроки
  18. Объединение списков с использованием itertools.chain
  19. Удаление ключа из словаря в Python
  20. Создание пар из последовательностей
  21. Удаление элемента из списка
  22. Работа с эмодзи в Python
  23. Метод get для словарей
  24. Установка User-Agent в Python
  25. Метод rlshift для битового сдвига
  26. Генератор данных в Keras
  27. Пустой оператор pass в Python
  28. Разделение строки с регулярными выражениями
  29. Управление фоновыми задачами в Python
  30. Определение локальных переменных в Python
  31. Логирование с Logzero
  32. Форматирование строк в Python
  33. Измерение времени выполнения кода
  34. Проверка существования переменной с оператором :=
  35. Создание новой даты в Python
  36. Лямбда-функции в Python
  37. Атрибуты объекта в Python
  38. Метод hash в Python
  39. Виртуальные среды в Python
  40. Асинхронное программирование с asyncio
  41. Использование функции enumerate()
  42. Оператор == в Python
  43. Цикл for в Python

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