Курс 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. Частичное совпадение ввода
  2. Переопределение метода delitem в Python
  3. Декоратор Ajax required
  4. Работа с deque из collections
  5. Переворот последовательности
  6. Счетчик в Python: most_common()
  7. Итераторы с потерямиZIP
  8. Область видимости переменных
  9. Python reversed() vs срез[::-1]
  10. Работа с датами в Python
  11. Изменение элемента списка
  12. Измерение времени выполнения кода
  13. Отношения подклассов в Python
  14. Группировка элементов Python
  15. Работа с коллекциями Python
  16. Курс Data Scientist в медицине
  17. Работа со строками в Python
  18. Условные выражения в Python
  19. Оптимизация памяти с помощью __slots__
  20. Генераторы словарей и множеств
  21. Метод __irshift__ для Python
  22. Динамические маршруты во Flask
  23. Пересечение списков с использованием множеств
  24. Замена переменных в Python
  25. Вывод сложных структур данных с помощью pprint
  26. Преобразование букв в нижний регистр
  27. Использование эмодзи в Python
  28. Переопределение оператора % для объектов
  29. Метод __getitem__ в Python
  30. Нахождение пересечения множеств
  31. Именованные срезы в Python
  32. Получение текущей даты и времени с помощью datetime
  33. Метод join() для объединения элементов
  34. Расширение операции побитового «и» в Python
  35. Объединение словарей в Python
  36. Руководство по Pymorphy2
  37. Создание итерируемых объектов
  38. Исключение NotImplementedError
  39. Получение текущей директории
  40. Избегание изменяемых аргументов
  41. Работа с изменяемыми коллекциями
  42. JMESPath в Python
  43. Установка Python3.7 и PIP
  44. Метод сравнения объектов в Python
  45. Измерение времени выполнения в Python
  46. Описание скриптов в README
  47. Форматирование строк в Python
  48. Отправка POST запроса на сервер.

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