Курс 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. Работа с NumPy массивами
  2. Разделение функций на этапы
  3. Метод Self в Python
  4. Тестирование с unittest
  5. Бесконечные списки в Python
  6. Поиск уникальных элементов строкой в Python
  7. Python Метод sleep() из time
  8. Очистка входных данных
  9. Python: динамическая типизация и проверка типов
  10. Возврат нескольких значений из функции
  11. Создание namedtuple списком полей
  12. ChainMap.new_child() — добавление нового словаря
  13. Оператор is в Python
  14. Счетчик ссылок в Python
  15. Группировка элементов в словарь
  16. Удаление файлов и папок в Python
  17. Основы работы со списками
  18. Поиск email
  19. Модуль sys: основы
  20. Измерение времени выполнения в Python
  21. Путь к интерпретатору Python
  22. Combobox в Tkinter
  23. Замена текста в Python
  24. Метаклассы в Python
  25. Defaultdict в Python
  26. Объединение словарей в Python
  27. Модуль itertools: комбинации и перестановки
  28. Mad Libs Generator
  29. Создание циклической ссылки
  30. Логирование с Loguru
  31. Удаление элементов из списка
  32. Создание спинбокса в tkinter
  33. Работа с часовыми поясами в Python.
  34. Измерение времени выполнения кода
  35. Закрытие файла в Python
  36. Получение имени функции с помощью inspect
  37. Форматирование строк в Python.
  38. Создание namedtuple из словаря
  39. Метод get() для словарей
  40. Возврат нескольких значений
  41. Сравнение def и lambda в Python
  42. Особенности запятых в Python
  43. Переворот списка в Python
  44. Копирование в Python
  45. Импорт в Python: список all

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