Курс 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. Сравнение def и lambda функций в Python
  3. Преобразование типов данных в set comprehension
  4. Игра «Виселица» на Python
  5. Python groupby() из itertools: работа с повторяющимися элементами
  6. Принцип одной функции
  7. Управление пакетами с pip
  8. Основные функции и модули Python
  9. Работа со временем в Python
  10. Установка виртуального окружения Python
  11. Форматирование строк с f-строками
  12. Метод difference_update() — разность множеств
  13. Работа с процессами в Python
  14. Проверка запуска скрипта или импорта модуля
  15. Метод get() для словарей
  16. Проверка версии Python
  17. Метод ifloordiv для пользовательских классов
  18. ChainMap.new_child() — добавление нового словаря
  19. Объединение строк с помощью метода join
  20. Игра «Угадывание чисел»
  21. Работа со словарями Python
  22. Форматирование чисел в Python
  23. Многоточие в Python
  24. Создание объекта времени
  25. Применение команды break
  26. Хранение данных с помощью dataclasses
  27. Библиотека Rich: форматирование текста
  28. Codecademy в Telegram
  29. inspect в Python: анализ кода
  30. Concrete Paths в Python
  31. Работа с аргументами командной строки
  32. Работа с deque в Python
  33. Функции в одну строку
  34. Лямбда-функции в Python
  35. Сглаживание списка
  36. Преобразование чисел в слова
  37. Функция pow() — возвести число в степень
  38. Срезы в Python
  39. Округление в Python
  40. Оператор «not» в Python
  41. Цепные операции в Python
  42. Безопасные SQL-запросы в Python 3.11
  43. Генерация UUID в Python
  44. Сериализация и десериализация объектов
  45. Работа с очередями в Python
  46. Установка random seed в Python
  47. Работа с переменными в Python

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