Курс 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. Namedtuple в Python
  3. Метод getitem для доступа к элементам последовательности
  4. Создание пользовательской коллекции в Python
  5. Основы работы со списками
  6. Создание GUI на Tkinter
  7. JSON-esque в Python
  8. Работа с timedelta в Python
  9. Операторы += в Python
  10. Сортировка в Python
  11. Использование type hints
  12. Работа с датой и временем в Python
  13. Обмен значений переменных в Python
  14. Определение объема памяти объекта
  15. Работа с временем в Python
  16. Генераторы в Python
  17. Логирование в Python
  18. Создание и удаление объектов
  19. Хэш-функции в Python
  20. Дизассемблирование Python кода
  21. Работа с Telegram API на Python
  22. Создание словарей в Python
  23. Инициализация структур данных
  24. Переопределение метода len
  25. Моржовый оператор в Python 3.8
  26. Очистка данных в Python
  27. Закрытие файла в Python
  28. Flask: создание веб-приложений
  29. Оператор «not» в Python
  30. Работа с defaultdictами в Python
  31. Протокол управления контекстом
  32. Генераторы списков в Python
  33. Работа с асинхронными задачами в Python
  34. Представление бесконечности в Python
  35. Подсчет вхождений элементов
  36. Подсчет элементов с помощью Counter из collections
  37. Проблема сравнения словарей
  38. Декораторы в Python
  39. Метод invert для побитового отрицания
  40. Сортировка данных в Python
  41. Получение значений из словарей
  42. Основы работы с базами данных в Python
  43. Метод ifloordiv для пользовательских классов
  44. Метод join() для объединения строк
  45. Поиск подстроки в строке
  46. Извлечение статей с newspaper3k
  47. Работа с путями в Python

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