Курс 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. Вычисление натуральных логарифмов в NumPy
  2. Однострочники Python
  3. Создание словарей с defaultdict()
  4. Хранение данных с помощью dataclasses
  5. Список методов и атрибутов
  6. Работа со списками
  7. Lambda Functions in Python
  8. Функция enumerate в Python
  9. Сравнение объектов в Python
  10. Отправка POST запроса на сервер.
  11. Ключевое слово global в Python
  12. Парсинг веб-страниц с Beautiful Soup
  13. Декоратор Ajax required
  14. Мощь вложенных функций в Python
  15. Оператор is в Python
  16. Объединение множеств в Python
  17. Управление асинхронными задачами с помощью Semaphore
  18. Скрытие вывода данных
  19. Тест скорости набора текста на Python
  20. Сложение матриц в NumPy
  21. Получение атрибутов и методов класса
  22. Копирование файлов с shutil()
  23. Преобразование букв в нижний регистр
  24. Методы list в Python
  25. Регулярные выражения: метод match
  26. Установка максимального количества цифр
  27. Импорт модуля из другого каталога
  28. Перехват исключений в Python
  29. Работа с функцией next() в Python
  30. Транспонирование 2D-массива с помощью zip
  31. Построение графиков в терминале с bashplotlib
  32. Метод __complex__ в Python
  33. Обработка ошибок в Python
  34. UserString в Python
  35. Работа с датой и временем в Python
  36. Эффективная конкатенация строк с использованием join()
  37. Область видимости переменных
  38. Оптимизация памяти с __slots__
  39. Стать Python-разработчиком
  40. Экспорт данных с помощью writefile
  41. Условные выражения в Python
  42. Повторение и перенос строки
  43. Оптимизация памяти с __slots__
  44. Преобразование регистра символов
  45. Иерархия классов в Python
  46. Numpy: объединение массивов

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