Курс 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. GitHub в Telegram: подписка на уведомления
  2. Генерация QR-кодов с библиотекой qrcode
  3. Метод matmul для умножения матриц
  4. Изучение объектов с помощью dir()
  5. Работа с парами ключ-значение
  6. Множества и frozenset
  7. Метод setdefault() в Python
  8. Функция format() в Python
  9. Возврат нескольких значений
  10. Функция all() в Python
  11. Генераторные выражения и islice.
  12. Работа с deque в Python
  13. Списки в Python
  14. Описание скриптов в README
  15. Многострочные комментарии в Python
  16. Нахождение отличий в списках
  17. Обработка исключений в Python
  18. Распаковка элементов массива
  19. Работа с модулем random
  20. Удаление дубликатов из списка
  21. Построение графиков в Matplotlib
  22. Операции с числами в Python
  23. Метод get для словарей
  24. Основные функции и модули Python
  25. Проверка индексов коллекции
  26. Глубокое копирование объектов
  27. Работа с кортежами в Python
  28. Генератор надежных паролей
  29. Цикл while в Python
  30. Оператор морж в Python 3.8
  31. Руководство по библиотеке pydantic
  32. Обработка исключений в Python
  33. Создание и инициализация объектов
  34. Замеры производительности в Python
  35. Управление фоновыми задачами в Python
  36. Разделение строк в Python
  37. Получение ID текущего процесса
  38. Python groupby() из itertools: работа с повторяющимися элементами
  39. Проверка файла .py на синтаксис.
  40. Списки в Python: синтаксис представления
  41. Проверка на палиндром
  42. Dict Comprehension в Python
  43. Enum в Python
  44. Работа с очередями в Python
  45. Фильтрация элементов с помощью islice
  46. Символ подчеркивания в Python
  47. Функция map() в Python
  48. Форматирование данных с помощью pprint
  49. Фильтрация входных данных в Python

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