Курс 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"
- Официальный канал Python в Telegram
- Progress с библиотекой tqdm
- Работа с срезами в Numpy
- Работа со временем в Python
- Обратное распространение ошибки
- Атрибуты класса и экземпляра
- Локальные переменные.
- Форматирование строк в Python
- Функция zip() в Python
- Фильтрация входных данных в Python
- Поиск индекса элемента
- Функция format() в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Проверка типа объекта в Python
- Оператор in и not in в Python
- Python reversed() vs срез[::-1]
- Работа с изменяемыми коллекциями
- Форматирование строк в Python
- Замена символов в Python
- Поиск наиболее частого элемента в списке
- Замыкания в Python
- Переопределение метода __lshift__
- Методы __repr__ и __str__ в Python
- Импорт классов из другого файла
- Метод rmatmul для обратного матричного умножения
- Математические функции в Python
- Метод eq для сравнения объектов
- Функции высшего порядка в Python
- Работа с модулем glob в Python
- Округление в Python
- Добавление вложенных списков
- Модуль pprint: улучшение вывода данных
- Роль запятой в Python
- Условные выражения в Python
- Numpy: разбиение массивов
- Модуль itertools: эффективная работа с итераторами
- Оператор zip в Python
- Логирование в Python
- Импорт модулей и пакетов в Python
- Удаление falsy-значений из списка с помощью filter
- Работа с NumPy.linalg
- Оболочка Python















