Курс 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. Работа с NumPy.linalg
  3. Использование функции enumerate()
  4. Работа с WindowsPath()
  5. Метод join() для объединения элементов
  6. Модуль subprocess: запуск внешних команд
  7. Подробная информация о %pinfo
  8. Форматирование строк в Python
  9. Статическая типизация в Python
  10. Подсчет вхождений элементов
  11. Установка и использование pyshorteners
  12. Управление виртуальными окружениями в Python
  13. Применение функции к списку
  14. Использование модуля math
  15. Функция divmod() в Python
  16. Удаление пробелов методом translate()
  17. Создание таблиц в Python с PrettyTable
  18. Частичное совпадение ввода
  19. Python itertools combinations() — группировка элементов
  20. Переопределение метода __and__
  21. Python Метод sleep() времени
  22. Импорт объектов из модулей
  23. Сложение матриц в NumPy
  24. Поиск шаблона в строке
  25. Настройка шрифта и цвета в Tkinter
  26. Оптимизация сравнения в Python
  27. Многоточие в Python
  28. Управление памятью в numpy.
  29. Наследование в программировании
  30. Анонимные функции Lambda
  31. Генераторы в Python
  32. Применение функции map() с лямбда-функциями
  33. Сортировка списка по индексам
  34. Регистрация на TenChat
  35. Проверка версии Python
  36. Автоматизация с Python
  37. Перевод двоичного кода в целое число
  38. Метод rsub в Python: расширение функциональности вычитания
  39. Работа с deque из collections
  40. Хранение переменных в словаре.
  41. Создание списка через итерацию
  42. Копирование объектов в Python
  43. Каналы Senior: Python, Java, Frontend, SQL, C++
  44. Работа с NumPy массивами
  45. Обновление данных через PUT запрос

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