Курс 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. Обработка исключений с блоком else
  2. Модуль array: создание и использование массивов
  3. Форматирование вывода с F-строками
  4. Нахождение пересечения множеств
  5. Удаление элементов по срезу
  6. Логирование в Python
  7. Поиск повторов в списке
  8. Реверс строки и списка в Python.
  9. Python: изменяемые и неизменяемые коллекции
  10. Проверка типов с помощью isinstance
  11. Цикл for в Python
  12. Преобразование PowerPoint в PDF.
  13. Библиотека funcy: удобные утилиты
  14. Ускорение выполнения кода в Python
  15. Оператор in для проверки наличия элемента
  16. Удаление пробелов методом translate()
  17. Работа с кортежами
  18. Вывод сложных структур данных с помощью pprint
  19. Разделение строки на подстроки в Python
  20. Создание коллекций из выражения-генератора
  21. Python: библиотеки и функции
  22. Установка и использование Logzero
  23. Создание обратного итератора
  24. Оптимизация памяти в Python
  25. *args и **kwargs в Python
  26. Проверка на палиндром
  27. Генераторы в Python
  28. Проверка надежности пароля на Python
  29. Работа с атрибутом dict
  30. Работа с Path в Python
  31. Возвращение нескольких значений через кортеж или класс
  32. Проверка памяти объекта
  33. Форматирование строк в Python
  34. Руководство по Pymorphy2
  35. Извлечение данных из JSON
  36. Изменение IP-адреса в Python
  37. Объединение словарей в Python
  38. Экспорт данных с помощью writefile
  39. Многострочные комментарии в Python
  40. Значения по умолчанию в Python
  41. Форматирование строк в Python
  42. Печать в одной строке
  43. Библиотека itertools: объединение списков
  44. Генераторы в Python
  45. Преобразование текста в речь с Python

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