Курс 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. Метод join() для объединения строк
  2. Объединение словарей в Python
  3. Конкатенация строк в Python
  4. Установка виртуального окружения Python
  5. Работа с областями видимости переменных
  6. Оператор морж в Python 3.8
  7. Особенности ключей словаря в Python
  8. Вывод сложных структур данных с помощью pprint
  9. Работа с файлами в Python
  10. Отношения подклассов в Python
  11. Шаблоны и наследование в Flask
  12. Замыкания в Python
  13. Функции с необязательными аргументами
  14. Установка и обучение ChatterBot
  15. Преобразование текста в нижний регистр
  16. Регистрация на хакатоне
  17. Работа с часовыми поясами в Python
  18. Форматирование чисел в Python
  19. Вывод символов строки в Python
  20. Сложные типы данных в Python
  21. Установка и использование pyshorteners
  22. Работа с датами в Python
  23. Метод __imod__ для Python
  24. Поиск шаблона в начале строки
  25. Резервирование символов в Python
  26. Импорт модулей в Python 3.12
  27. Возврат нескольких значений
  28. Обновление шаблона base.html
  29. Удаление специальных символов с помощью re.sub
  30. Аргумент по умолчанию
  31. Форматирование кода на Python
  32. Разделение строки на подстроки в Python
  33. Определение локальных переменных в Python
  34. Склеивание строк без циклов
  35. Создание OrderedDict
  36. Ветвление выражения в Python
  37. Оператор += для объединения строк
  38. Оператор is в Python
  39. Списки в Python: синтаксис представления
  40. Подсчет вхождений элементов
  41. Константы в модуле cmath
  42. Функция zip() в Python
  43. Создание лямбда-функций
  44. Сумма элементов списка

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