Курс 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"
- Сравнение def и lambda функций в Python
- Оптимизация памяти с __slots__
- Получение текущего времени в Python
- Участие в сообществе @selectel
- Отслеживание прогресса с tqdm
- Удаление ключа из словаря
- Функция zip() для объединения списков
- Библиотека funcy: удобные утилиты
- Декоратор проверки активности
- Введение в Python
- Обработка элементов в Python
- Метод splitlines() для разделения строк
- Конкатенация строк в Python
- Обход словаря в Python
- Поиск с библиотекой Google
- Регистрация на TenChat
- Функциональное программирование.
- Combobox в Tkinter
- Структуры данных в Python
- Работа с географическими данными в Python
- Преобразование текста в речь с Python
- Отладка в Python
- Функции в Python
- Руководство по Pymorphy2
- Конкатенация строк с помощью join()
- Построение графиков в Matplotlib
- Управление виртуальными средами в Python
- Добавление элемента к кортежу
- Объединение словарей в Python
- Векторизация в Python с NumPy.
- Расчет времени выполнения
- Транспонирование 2D-массива с помощью zip
- Сравнение строк в Python
- Метод rmatmul для пользовательских матриц
- Разработка игры Pong с turtle
- Создание списков в Python
- Принципы Zen of Python
- Избегание изменяемых аргументов
- Оператор «моржа» (Walrus Operator)
- Поиск индекса элемента
- Передача параметров в Python
- Упрощение условных выражений с тернарным оператором
- Декораторы в Python
- Дизассемблирование Python кода
- Оператор == в Python
- Поток данных в Python
- Сортировка элементов в Python
- Проверка типа данных
- Управление контекстом с помощью декоратора contextmanager















