Курс Python → Методы и функции в Python

В Python методы и идентичность функций играют важную роль. Функции в Python являются дескрипторами, что означает, что каждый раз, когда к функции обращаются как к атрибуту, вызывается дескриптор, который создает объект метода. Этот объект метода «связывает» функцию с объектом, владеющим атрибутом. Таким образом, при вызове метода, функция вызывается, и неявно передается связанный объект в качестве первого аргумента. Именно поэтому мы видим параметр self в методах классов, даже если мы не передаем его явно.

Пример кода, демонстрирующий это поведение:


class MyClass:
    def my_method(self):
        print("Hello from my_method")

obj = MyClass()
obj.my_method()

В приведенном выше примере метод my_method класса MyClass имеет параметр self, который ссылается на экземпляр объекта MyClass. При вызове метода obj.my_method() функция my_method вызывается, и объект obj передается неявно в качестве первого аргумента.

Этот механизм позволяет методам класса взаимодействовать с атрибутами и методами объекта, к которому они привязаны. Таким образом, методы классов могут изменять состояние объекта или вызывать другие методы объекта, используя параметр self.

Использование дескрипторов и объектов методов в Python обеспечивает удобство и гибкость при работе с объектно-ориентированным программированием. Понимание того, как функции связываются с объектами и вызываются в контексте методов классов, поможет вам писать более чистый и эффективный код.

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

Автор урока

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

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

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

  1. Официальный канал Python в Telegram
  2. Progress с библиотекой tqdm
  3. Работа с срезами в Numpy
  4. Работа со временем в Python
  5. Обратное распространение ошибки
  6. Атрибуты класса и экземпляра
  7. Локальные переменные.
  8. Форматирование строк в Python
  9. Функция zip() в Python
  10. Фильтрация входных данных в Python
  11. Поиск индекса элемента
  12. Функция format() в Python
  13. Каналы Senior: Python, Java, Frontend, SQL, C++
  14. Проверка типа объекта в Python
  15. Оператор in и not in в Python
  16. Python reversed() vs срез[::-1]
  17. Работа с изменяемыми коллекциями
  18. Форматирование строк в Python
  19. Замена символов в Python
  20. Поиск наиболее частого элемента в списке
  21. Замыкания в Python
  22. Переопределение метода __lshift__
  23. Методы __repr__ и __str__ в Python
  24. Импорт классов из другого файла
  25. Метод rmatmul для обратного матричного умножения
  26. Математические функции в Python
  27. Метод eq для сравнения объектов
  28. Функции высшего порядка в Python
  29. Работа с модулем glob в Python
  30. Округление в Python
  31. Добавление вложенных списков
  32. Модуль pprint: улучшение вывода данных
  33. Роль запятой в Python
  34. Условные выражения в Python
  35. Numpy: разбиение массивов
  36. Модуль itertools: эффективная работа с итераторами
  37. Оператор zip в Python
  38. Логирование в Python
  39. Импорт модулей и пакетов в Python
  40. Удаление falsy-значений из списка с помощью filter
  41. Работа с NumPy.linalg
  42. Оболочка Python

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