Курс 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. Оптимизация памяти с slots
  2. Создание .exe файла с pyinstaller
  3. Моржовый оператор в Python 3.8
  4. Декораторы с аргументами
  5. Конкатенация строк с помощью join()
  6. Создание панели меню Tkinter
  7. Переопределение оператора % для объектов
  8. Обмен переменными в Jupyter
  9. Удаление дубликатов из списка с помощью dict.fromkeys
  10. Структурирование именованных констант
  11. Lambda Functions in Python
  12. Применение функции к каждому элементу списка
  13. Поиск наиболее частого элемента в списке
  14. Кортежи в Python: особенности и преимущества
  15. Управление виртуальными окружениями в Python
  16. Возврат нескольких значений
  17. Циклы for в Python
  18. Построение графиков в терминале с bashplotlib
  19. Преобразование Excel в PDF с Spire.XLS
  20. Резервирование символов в Python
  21. Установка и использование emoji
  22. Метод join() для объединения строк
  23. inspect в Python: анализ кода
  24. Обработка ошибок в Python
  25. Работа со случайными элементами
  26. Поиск самого длинного слова в списке с использованием max()
  27. Счетчик ссылок в Python
  28. Python reversed() vs срез[::-1]
  29. Отправка POST запроса на сервер.
  30. Передача словаря через **kwargs
  31. Генераторы списков
  32. Передача параметров в Python
  33. Утечки переменных цикла в Python 3.x
  34. Операция += для списков
  35. Инициализация структур данных
  36. Добавление элементов в список: append() vs extend()
  37. Сериализация объектов в Python
  38. Отладка в командной строке
  39. Создание таблиц в терминале с PrettyTable
  40. Запуск внешних программ с subprocess
  41. Python: библиотеки и функции
  42. Упрощение условных выражений с тернарным оператором
  43. Проверка класса объекта
  44. Создание OrderedDict
  45. Объединение словарей в Python

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