Курс 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. HTTP-запросы с библиотекой Requests
  2. Множественное наследование в Python
  3. Библиотека Emoji: использование смайлов в Python
  4. Объединение коллекций в Python
  5. Подсчет часто встречающихся элементов
  6. Преобразование символов в нижний регистр
  7. Вывод букв строки в Python
  8. Создание и удаление объектов
  9. Сортировка данных с лямбда-функциями
  10. Функция print() — вывод информации
  11. Объединение списков с использованием itertools.chain
  12. Объединение словарей в Python 3.5+
  13. Отправка POST-запроса в REST API
  14. Гибкие функции Python
  15. Лямбда-функции в defaultdict
  16. Работа с файловой системой в Python
  17. Работа с timedelta в Python
  18. Проверка файла .py на синтаксис.
  19. Взаимодействие с внешними процессами в Python
  20. Тестирование функции сложения
  21. Атрибуты класса и экземпляра
  22. Настройка Cron
  23. Оболочка Python
  24. Обновление множества в Python
  25. Оператор морж в Python 3.8
  26. Работа с URL-адресами в Python
  27. Инверсия списка и строки в Python
  28. Удаление дубликатов в pandas
  29. Работа с контекстным менеджером Pool
  30. Избегайте использования goto
  31. Удаление элемента по индексу в Python
  32. Закрытие файла в Python
  33. Основы слова
  34. Возврат значений из генератора
  35. Наследование в программировании
  36. Применение функции к списку
  37. Поиск повторов в списке
  38. Методы Python для работы с данными
  39. Работа с PosixPath() в Python
  40. Динамическая типизация в Python
  41. Создание и обучение модели с Keras
  42. Создание таблиц в Python с PrettyTable
  43. Вычисление фазы комплексного числа
  44. Функции высшего порядка в Python

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