Курс 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. Перемешивание списка с shuffle()
  2. Хранение переменных в Python.
  3. Именованные срезы в Python
  4. Кортеж в Python: создание, доступ, изменение
  5. Запуск файлового сервера
  6. Анонимные функции в Python
  7. Экспорт внешнего файла с помощью writefile
  8. Замена символов в строке
  9. Изменение логики работы с временем
  10. Копирование файлов с shutil()
  11. Декораторы с аргументами в Python
  12. Отступы в Python
  13. Преобразование PowerPoint в PDF.
  14. Итерация по итерируемым объектам
  15. split() — разделение строки
  16. Функции высшего порядка в Python
  17. Блок try…finally в Python
  18. Строки в Python: апострофы и кавычки
  19. Назначение максимального и минимального значения переменной в Python.
  20. Создание списков в Python
  21. Замеры производительности в Python
  22. Создание виртуальной среды
  23. Лямбда-функции в цикле
  24. Модуль itertools: эффективная работа с итераторами
  25. Декораторы с аргументами
  26. Вычисление фазы комплексного числа
  27. Переопределение метода __eq__
  28. Оператор обр. импликации
  29. Отладка кода
  30. Установка максимального количества цифр
  31. Beautiful Soup — извлечение данных из HTML
  32. F-строки в Python
  33. Изменение переменной в Python: nonlocal
  34. Операторы += в Python
  35. Установка и использование Logzero
  36. Создание Radio кнопок в tkinter
  37. Функция count() в Python
  38. Лямбда-функции для min/max
  39. Логирование с Logzero
  40. Оптимизация методов в Python 3.7
  41. Декораторы в Python
  42. Сортировка в Python
  43. Освобождение памяти в Python
  44. Поиск частого элемента
  45. Дизассемблирование Python кода

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