Курс 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. Работа с модулем os в Python
  3. Сортировка в Python
  4. Переворот строки с помощью срезов
  5. Логирование в Python
  6. Python reversed() vs срез[::-1]
  7. Создание словаря и множества
  8. Операторы сравнения в Python
  9. Работа с IP-адресами в Python
  10. Лямбда-функции в Python
  11. Работа с файлами в Python
  12. Поиск шаблона в строке
  13. Создание детектора плагиата
  14. Непрерывная проверка в Python
  15. Возврат нескольких значений
  16. Поиск индексов подстроки
  17. Преобразование данных в Python
  18. Функциональное программирование в Python
  19. Переопределение метода __or__()
  20. Bootle — простой веб-фреймворк
  21. Python Метод Union Множеств
  22. Создание функций с произвольным количеством аргументов
  23. TypedDict для kwargs в Python 3.12
  24. Установка random seed в Python
  25. Функции map, filter и reduce
  26. Хеши в Python
  27. Генерация QR-кодов с библиотекой qrcode
  28. Вывод баннеров
  29. Python defaultdict добавление ключа
  30. Управление импортом в Python
  31. Проверка версии Python
  32. Функция enumerate() в Python
  33. Преобразование данных в Python
  34. Переопределение метода
  35. Работа с массивами в Python
  36. Использование super() в Python
  37. Оператор Walrus в Python
  38. Метод remove() для удаления элемента из списка
  39. Функция enumerate в Python
  40. Создание итерируемых объектов
  41. Преобразование в float
  42. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  43. Сериализация данных в JSON с помощью json.dumps
  44. Преобразование числа в список цифр
  45. Добавление элемента в список.
  46. Измерение времени выполнения в Python
  47. Утечки переменных цикла в Python 3.x

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