Курс 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. Фильтрация последовательности
  3. Метод rsub в Python: расширение функциональности вычитания
  4. Именованные аргументы в Python
  5. CSV строка разделение в Python
  6. Основы Python
  7. Работа с эмодзи в Python
  8. Именованные кортежи в Python
  9. Измерение времени выполнения кода с использованием time
  10. Склеивание строк без циклов
  11. PrettyTable: создание таблицы
  12. Бесконечные списки в Python
  13. Pretty-printing JSON в Python
  14. Работа с collections в Python
  15. Вакансии в Nebius
  16. Улучшение читаемости кода в Python
  17. Вычисление разности множеств в Python
  18. Преобразование текста в нижний регистр
  19. Автоматизация действий с Pyautogui
  20. Оператор «моржа» (Walrus Operator)
  21. Форматирование строк в Python
  22. Настройка логгера Logzero
  23. Установка и использование Telegram API в Python
  24. Создание новых списков через list comprehensions
  25. Сравнение строк в Python
  26. Работа с f-строками 2.0
  27. Группировка элементов в словарь
  28. Создание новых списков
  29. Декораторы в Python
  30. Получение текущего времени в Python
  31. Обработка исключений в Python
  32. Оформление кода на Python
  33. Работа с каталогами в Python
  34. Навыки Python: строки, типы данных
  35. Добавление элементов в список
  36. Отладчик pdb: начало работы
  37. Инверсия списка/строки в Python
  38. Вычисление логарифмов в Python
  39. Метод ifloordiv для пользовательских классов
  40. Проверка типов с помощью isinstance
  41. Нахождение максимального значения и его индекса в списке
  42. Декоратор total_ordering для сравнения объектов
  43. Отступы в Python
  44. Округление банкира в Python
  45. Создание копии списка в Python

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