Курс 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. Работа с изображениями PIL
  2. Проверка элемента в множестве.
  3. Объединение словарей в Python
  4. Defaultdict в Python
  5. Порядок операций в Python
  6. Асинхронный код в Python
  7. Логирование с Logzero
  8. Оператор «is not» в Python
  9. Создание виртуальной среды
  10. Получение локальных переменных в Python
  11. globals и locals
  12. Создание и использование ChainMap
  13. Установка и использование emoji
  14. Создание генераторов
  15. Переопределение метода __rshift__
  16. Сортировка с помощью key
  17. Работа с аргументами командной строки в Python
  18. Управление виртуальными средами в Python
  19. Комментарии в Python.
  20. Установка библиотек в Python
  21. Взаимодействие с внешними процессами в Python
  22. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  23. Методы split() и join() — Python строк.
  24. Извлечение данных из JSON
  25. Работа с deque в Python
  26. Замена текста в Python
  27. Beautiful Soup — извлечение данных из HTML
  28. Модуль itertools: комбинации и перестановки
  29. Итерации в Python
  30. Строковое представление объектов
  31. Метод rename() для переименования файлов и каталогов
  32. Профилирование кода на Python
  33. Отладка регулярных выражений в Python
  34. Метод join() для объединения элементов строки
  35. Анализ текста на русском языке с помощью Pymystem3
  36. Генерация строк с .join()
  37. Оформление кода на Python
  38. Игра «Камень, ножницы, бумага» — Python
  39. Импорт модулей и пакетов в Python
  40. Проверка вхождения подстроки
  41. Удаление элементов по срезу
  42. Оптимизация поиска в словарях
  43. Ускорение выполнения кода в Python
  44. Утечки переменных цикла в Python 3.x
  45. Сравнение def и lambda функций в Python
  46. Асинхронное программирование с asyncio

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