Курс Python → Метод __call__ в Python

Метод __call__ в Python позволяет создавать объекты, которые можно вызывать как функции. Это значит, что при вызове объекта с использованием скобок, будет вызываться метод __call__ этого объекта. Такие объекты называются «вызываемыми» и могут содержать любую логику внутри метода __call__.

Для создания вызываемого объекта необходимо определить метод __call__ внутри класса. Этот метод должен принимать параметры, которые будут передаваться при вызове объекта. Внутри метода __call__ можно определить любую логику, которая будет выполняться при вызове объекта.


class CallableObject:
    def __call__(self, *args, **kwargs):
        # Логика, которая будет выполняться при вызове объекта
        pass

# Создание объекта, который можно вызывать
obj = CallableObject()
obj()  # Вызов объекта как функции

Пример кода выше показывает, как создать класс CallableObject с методом __call__, который можно вызывать как функцию. При вызове объекта obj как функции, будет выполняться логика, определенная в методе __call__.

Использование метода __call__ позволяет создавать объекты с более гибким поведением, чем простые функции. Это удобно, когда требуется создать объект, который может хранить состояние или выполнять какую-то сложную логику при вызове.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Сортировка в Python
  2. Сравнение строк в Python
  3. Форматирование строк с % в Python
  4. Безопасные SQL-запросы в Python 3.11
  5. Транспонирование матрицы в Python
  6. Работа с каталогами в Python
  7. Применение функции к списку
  8. Срез списка в Python
  9. inspect в Python: анализ кода
  10. Подписка на каналы разработчиков
  11. Метод index() в Python
  12. Операции с матрицами в Python
  13. Подписка на @SelectelNews
  14. Установка Git и AWS CLI
  15. Класс-оболочка для словарей
  16. Создание словарей и множеств в Python.
  17. discard() — удаление элемента из множества
  18. Управление асинхронными задачами на Python.
  19. Модуль xkcd: загрузка комиксов
  20. Поток данных в Python
  21. Метод enumerate() в Python
  22. Базовые объекты Python
  23. Импорт в Python: список all
  24. Замеры производительности в Python
  25. Работа с изменяемыми списками
  26. Работа со временем в Python
  27. Модуль pprint
  28. Применение функции к списку
  29. Работа с Path в Python
  30. Использование *args
  31. Создание генераторов
  32. Поиск индексов в списке
  33. Установка Home Assistant
  34. Форматирование строк в Python.
  35. Переопределение метода __or__()
  36. Поиск HTML-элементов с BeautifulSoup
  37. Получение текущей директории
  38. Метод rmatmul для обратного матричного умножения
  39. Мониторинг памяти с Pympler
  40. None в Python: использование и особенности
  41. Многострочные комментарии в Python
  42. Просмотр файла в Jupyter Noteboo
  43. TON Smart Challenge #2: участие и подготовка
  44. Анонимные функции Lambda
  45. Метод splitlines() для разделения строк
  46. Работа с аргументами командной строки
  47. Официальный канал Python в Telegram

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