Курс 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. Фильтрация списка от «ложных» значений
  2. Работа со строками
  3. Генераторные функции в Python
  4. Добавление вложенных списков
  5. Сортировка в Python
  6. Сравнение объектов в Python
  7. Проверка условий: all и any
  8. Удаление элементов из списка в Python.
  9. Python groupby() из itertools: работа с повторяющимися элементами
  10. Изменение регистра данных
  11. Профилирование данных с Pandas
  12. Логирование в Python
  13. Сериализация и десериализация объектов
  14. Python enumerate() для работы с индексами
  15. Генератор данных в Keras
  16. Декодирование строк в Python
  17. Класс-оболочка для словарей
  18. Синхронизация доступа к ресурсам
  19. JSON в Python: модуль, dump, dumps, load
  20. Цикл for в Python
  21. Метод hash в Python
  22. Использование функции product
  23. Распаковка аргументов в Python
  24. Подчеркивание в REPL
  25. Модуль itertools: эффективная работа с итераторами
  26. Особенности ключей словаря в Python
  27. Отступы в Python
  28. Поиск уникальных элементов строкой в Python
  29. Логические значения в Python
  30. Управление экспортом элементов
  31. Работа с аргументами командной строки в Python
  32. *args и **kwargs в Python
  33. Метод invert для побитового отрицания
  34. Установка Git и AWS CLI
  35. Изучение объектов с помощью dir()
  36. Поиск кода
  37. Генераторные функции в Python
  38. Проблемы с dict в Python
  39. Работа с комплексными числами в Python
  40. Генераторы в Python
  41. Тип CodeType в Python.
  42. Получение значений из словарей
  43. Генератор списка в Python
  44. Мощь вложенных функций в Python

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