Курс 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. Переменные в Python
  2. Мониторинг работы программы Py-spy
  3. Colorama: окрашивание текста в Python
  4. Нахождение пересечения множеств
  5. Основы Python за 14 дней
  6. Функции-генераторы в Python
  7. Работа с argparse
  8. Копирование в Python
  9. Нахождение самого длинного слова в списке с помощью max
  10. Очистка входных данных
  11. Numpy: объединение массивов
  12. Проблемы с именами переменных
  13. Генерация ключей RSA
  14. Сравнение строк в Python
  15. Операции с датами в Python
  16. Метод rxor для операции побитового исключающего «или»
  17. Возврат нескольких значений
  18. Создание матрицы в Python
  19. Поиск шаблона в начале строки
  20. Навыки Python: строки, типы данных
  21. Подсчет элементов в списке с Counter
  22. Итераторы в Python
  23. Взаимодействие с внешними процессами в Python
  24. Управление контекстом с помощью декоратора contextmanager
  25. Возврат нескольких значений из функции
  26. Удаление falsy-значений из списка с помощью filter
  27. Переменная с нижним подчеркиванием
  28. Работа с байтовыми строками в Python
  29. Удаление дубликатов с помощью множеств
  30. Flask: создание веб-приложений
  31. Управление контекстом выполнения
  32. Операторы сравнения в Python
  33. Функции классификации комплексных чисел
  34. Управление асинхронными задачами на Python.
  35. Создание словарей с defaultdict
  36. Секреты Python
  37. Структура строк в Python
  38. Удаление файлов с shutil.os.remove()
  39. Обезопасьте ввод данных
  40. Импортирование в Python
  41. Установка пакета в Python
  42. Асинхронное программирование с asyncio
  43. Функция sleep() в Python
  44. Генерация чисел с range()
  45. Работа с комплексными числами в Python
  46. Хеширование паролей с солью
  47. Визуализация пропусков данных

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