Курс 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. Python Поверхностное Копирование
  3. Сортировка и разворот списка
  4. Работа с пакетами
  5. Работа с байтовыми строками в Python
  6. Определение размера папок в Python
  7. Функция divmod() в Python
  8. Измерение времени выполнения кода
  9. Создание именованных кортежей в Python
  10. Передача аргументов через **arguments
  11. Создание файла с проверкой ошибки
  12. Принципы SRP и OCP
  13. Создание уникального проекта
  14. Транспонирование 2D-массива с помощью zip
  15. Декоратор Ajax required
  16. Разделение списка на гнппы
  17. Основные операции с библиотекой Numpy
  18. Настройка вывода NumPy
  19. Метод join() для объединения элементов
  20. Оптимизация параметров в Python
  21. Создание вложенных циклов for
  22. Порядок и длина множеств в Python
  23. Работа с временем в Python
  24. Подсказки типов в Python
  25. Импорт модулей и пакетов в Python
  26. Форматирование чисел в Python
  27. Управление контекстом выполнения
  28. Структура данных словарь в Python
  29. Создание новых списков в Python
  30. Функции all и any в Python
  31. Работа с датами в Python
  32. Работа с кортежами в Python
  33. Значения по умолчанию в Python
  34. Подсчет элементов в списке с Counter
  35. GitHub в Telegram: подписка на уведомления
  36. Декоратор защиты анонимных пользователей
  37. Операции с датами в Python
  38. Выражения-генераторы в Python
  39. Импорт классов из другого файла
  40. Обратное распространение ошибки
  41. Кортежи в Python: особенности и преимущества
  42. Функции в одну строку
  43. Удаление элемента из списка в Python
  44. Управление IP-адресами через прокси
  45. Транспонирование 2D-массива с помощью zip
  46. Операторы присваивания в Python
  47. Работа с NumPy.linalg
  48. Принципы Zen of Python
  49. PUT запрос для обновления данных

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