Курс 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. Нахождение максимального значения и его индекса в списке
  3. Встраивание HTML в Jupyter Notebook
  4. Работа с множествами в Python
  5. Проектирование Singleton с метаклассом
  6. Работа с NumPy
  7. Сортировка и разворот списка
  8. Экспорт данных в файл.
  9. Переменная с нижним подчеркиванием
  10. Генерация чисел с range()
  11. Расширение операции побитового «и» в Python
  12. Настройка шрифта и цвета в Tkinter
  13. Генератор списка в Python
  14. Обновление и получение данных в SQLite
  15. Секреты Python
  16. Работа с коллекциями Python
  17. Преобразование символов в нижний регистр
  18. Декораторы в Python
  19. Оценка точности модели
  20. Тестирование времени с Freezegun
  21. Метод get() для словарей
  22. Создание уникального множества
  23. Генераторы списков
  24. Установка и обучение ChatterBot
  25. Удаление дубликатов из списка
  26. Преобразование range в итератор
  27. Курсы Яндекс Практикум
  28. Подсчет элементов в Python
  29. Лямбда-функции для min/max
  30. Счетчик в Python: most_common()
  31. Декораторы в Python
  32. Работа с парами ключ-значение
  33. Методы и функции в Python
  34. Управление экспортом элементов
  35. Retrying в Python: повторные вызовы
  36. Атрибуты класса и экземпляра
  37. Создание обратного итератора
  38. Python enumerate() функции
  39. Удаление элементов по срезу
  40. Преобразование Word в PDF с Spire.Doc
  41. Создание и использование ChainMap
  42. Работа с геоданными с помощью geopy
  43. Удаление знаков препинания в Python
  44. Конвертация текстовых чисел с помощью Numerizer
  45. Генератор чисел Фибоначчи
  46. Проверка ввода с помощью isdigit
  47. Многострочные комментарии в Python

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