Курс 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
  2. Описание скриптов в README
  3. Метод difference_update() — разность множеств
  4. Вывод символов строки в Python
  5. Применение функции к списку
  6. Документация функции help() в Python
  7. Подсчет количества элементов в списке
  8. Проверка окончания строки с помощью str.endswith()
  9. Работа с массивами в Python
  10. Оператор is в Python
  11. Запуск внешнего кода в Jupyter
  12. Использование эмодзи в Python
  13. Функции all и any в Python
  14. Определение функций с необязательными аргументами
  15. Форматирование строк в Python
  16. Метод getitem для доступа к элементам последовательности
  17. Проверка списка: any() и all()
  18. Генерация QR-кодов с Python
  19. Поиск самого длинного слова в списке с использованием max()
  20. Работа с типами данных в Python с помощью pydantic.
  21. Использование метода lower()
  22. Python: изменяемые и неизменяемые коллекции
  23. None в Python: использование и особенности
  24. Python itertools combinations() — группировка элементов
  25. Оператор объединения словарей
  26. Передача словаря через **kwargs
  27. Вычисление натурального логарифма в NumPy
  28. Создание Radio кнопок в tkinter
  29. Обмен данными с asyncio.Queue
  30. Генераторы списков в Python
  31. Поиск анаграмм с Counter
  32. Обход словаря в Python
  33. Манипуляция формой массива в Numpy
  34. Функция count() в Python
  35. Комментарии в Python
  36. Сортировка в Python
  37. Метод get() в Python
  38. Потоковый ввод в Python
  39. Метод Enumerate() для списков
  40. Работа с коллекциями Python
  41. Управление виртуальными окружениями в Python
  42. Обработка исключения UnboundLocalError
  43. Встраивание HTML в Jupyter Notebook
  44. Отправка поздравлений по дню рождения
  45. Работа с f-строками 2.0
  46. Декораторы в Python

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