Курс Python → Метод classmethod

Метод classmethod в Python используется для создания методов, которые могут быть вызваны как для экземпляра класса, так и для самого класса. Однако, при обращении к атрибуту метода несколько раз, каждый раз создается новый объект метода. Это означает, что выражение o1.method is o1.method никогда не будет истинным, так как каждый вызов создает новый объект.

Важно отметить, что доступ к функциям как атрибутам класса (а не экземпляра) не создает новые методы. Поэтому, выражение SomeClass.method is SomeClass.method будет истинным, так как метод создается один раз для всего класса.

Для наглядности, рассмотрим пример кода:


class SomeClass:
    @classmethod
    def method(cls):
        print("This is a class method")

o1 = SomeClass()
o2 = SomeClass()

# Создание экземпляра метода для o1
method1 = o1.method
# Создание экземпляра метода для o1 еще раз
method2 = o1.method

print(method1 is method2)  # Вывод: False

# Создание метода для класса
class_method1 = SomeClass.method
class_method2 = SomeClass.method

print(class_method1 is class_method2)  # Вывод: True

В этом примере мы видим, что при обращении к методу класса SomeClass.method создается только один объект метода, поэтому выражение class_method1 is class_method2 вернет True. В то же время, для экземпляра класса o1.method каждый вызов создает новый объект, что делает выражение method1 is method2 ложным.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Декоратор Ajax required
  2. Отправка HTTP-запросов с User-Agent
  3. Атрибуты класса и экземпляра
  4. Генераторы в Python
  5. Основы работы со списками
  6. Избегание изменяемых аргументов
  7. Ключевое слово global в Python
  8. Объединение словарей в Python
  9. Удаление ресурса в Python
  10. Получение пути к текущему скрипту с помощью os
  11. Подсказки при вводе данных в Python
  12. Метаклассы в Python
  13. Подсчет элементов в Python
  14. Декораторы в Python
  15. TON Smart Challenge #2: участие и подготовка
  16. Python Ellipsis использование
  17. Создание графиков в терминале
  18. Поиск самого длинного слова в списке с использованием max()
  19. JSON в Python: модуль, dump, dumps, load
  20. Подсчет вхождений элементов
  21. Python: цикл for и оператор присваивания
  22. Логирование с Loguru
  23. Работа с датой и временем в Python
  24. Метод Enumerate() для списков
  25. Получение размера объекта с sys.getsizeof()
  26. Обработка исключений в Python
  27. Декораторы в Python
  28. Тайное преобразование типа ключа
  29. Counter() — подсчет элементов
  30. Сравнение строк в Python
  31. Функции map, filter и reduce
  32. Просмотр внешних файлов в %pycat
  33. Модуль array: создание и использование массивов
  34. Прокачанный трейсинг ошибок
  35. Фильтрация списков с itertools
  36. Управление асинхронными задачами с помощью Semaphore
  37. Аннотации типов в Python
  38. Просмотр атрибутов и методов класса
  39. Работа с контекстными менеджерами
  40. Вычисление разности множеств в Python
  41. Magic Commands — улучшение работы с Python
  42. Вычисление логарифмов в Python
  43. Логические операторы в Python
  44. Метод __float__ в Python
  45. Сохранение Unicode в JSON
  46. Создание OrderedDict

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