Курс 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. Генератор бросков кубиков
  2. Логирование с Logzero
  3. Списки в Python: основы
  4. Функции с необязательными аргументами
  5. Асинхронный код в Python
  6. Работа с процессами в Python
  7. Команда %dhist — список посещенных каталогов
  8. Профилирование кода на Python
  9. Создание итератора
  10. Определение основы слова с showballstemmer
  11. Шаблоны Flask: условия и циклы
  12. Проверка памяти объекта
  13. Метод __imod__ для Python
  14. Оптимизация сравнения в Python
  15. Повторение и перенос строки
  16. Обработка исключения UnboundLocalError
  17. Определение наиболее частого элемента с помощью collections.Counter
  18. Вакансии в Nebius
  19. Работа с OpenCV
  20. Подсказки при вводе данных в Python
  21. Конвертация коллекций в Python
  22. Форматирование строк с % в Python
  23. Colorama: окрашивание текста в Python
  24. Декоратор @override
  25. Разделение строк методом split()
  26. Генераторы данных
  27. Отрицательные индексы списков в Python
  28. Модуль inspect: получение информации о объектах
  29. Представление бесконечности в Python
  30. Метод rsub для пользовательских чисел
  31. Объединение кортежей в Python
  32. Объединение словарей в Python
  33. Конвертация коллекций в Python.
  34. Операции с матрицами в Python
  35. Удаление дубликатов в pandas
  36. Переопределение метода __lshift__
  37. Работа с множествами в Python
  38. Декоратор Ajax required
  39. Управление фоновыми задачами в Python
  40. Поиск email
  41. Удаление дубликатов из списка
  42. Работа с CSV файлами в Python
  43. Работа с файлами в Python
  44. Создание панели меню Tkinter
  45. Метод сравнения объектов в Python

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