Курс 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. Сравнение def и lambda функций в Python
  2. Оптимизация памяти с __slots__
  3. Получение текущего времени в Python
  4. Участие в сообществе @selectel
  5. Отслеживание прогресса с tqdm
  6. Удаление ключа из словаря
  7. Функция zip() для объединения списков
  8. Библиотека funcy: удобные утилиты
  9. Декоратор проверки активности
  10. Введение в Python
  11. Обработка элементов в Python
  12. Метод splitlines() для разделения строк
  13. Конкатенация строк в Python
  14. Обход словаря в Python
  15. Поиск с библиотекой Google
  16. Регистрация на TenChat
  17. Функциональное программирование.
  18. Combobox в Tkinter
  19. Структуры данных в Python
  20. Работа с географическими данными в Python
  21. Преобразование текста в речь с Python
  22. Отладка в Python
  23. Функции в Python
  24. Руководство по Pymorphy2
  25. Конкатенация строк с помощью join()
  26. Построение графиков в Matplotlib
  27. Управление виртуальными средами в Python
  28. Добавление элемента к кортежу
  29. Объединение словарей в Python
  30. Векторизация в Python с NumPy.
  31. Расчет времени выполнения
  32. Транспонирование 2D-массива с помощью zip
  33. Сравнение строк в Python
  34. Метод rmatmul для пользовательских матриц
  35. Разработка игры Pong с turtle
  36. Создание списков в Python
  37. Принципы Zen of Python
  38. Избегание изменяемых аргументов
  39. Оператор «моржа» (Walrus Operator)
  40. Поиск индекса элемента
  41. Передача параметров в Python
  42. Упрощение условных выражений с тернарным оператором
  43. Декораторы в Python
  44. Дизассемблирование Python кода
  45. Оператор == в Python
  46. Поток данных в Python
  47. Сортировка элементов в Python
  48. Проверка типа данных
  49. Управление контекстом с помощью декоратора contextmanager

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