Курс 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. F-строки в Python
  3. Работа с argparse
  4. Сортировка элементов с OrderedDict
  5. Перемешивание списка с shuffle()
  6. Замена символов в строке
  7. Ускорение кода с помощью векторизации
  8. Применение функции к элементам списка
  9. Руководство по библиотеке pydantic
  10. Работа с getopt
  11. Создание циклической ссылки
  12. Печать в одной строке
  13. Создание .exe файла с pyinstaller
  14. Запуск внешних программ с subprocess
  15. Импорт модулей и пакетов в Python
  16. Python: динамическая типизация и проверка типов
  17. Настройка вывода в Numpy
  18. Сравнение def и lambda функций в Python
  19. ROT13 Шифр Цезаря в Python
  20. Работа с IP-адресами в Python
  21. Работа с временем в Python
  22. Множественное назначение в Python
  23. Отображение HTML кода в Python
  24. Python Метод Union Множеств
  25. Создание пользовательской коллекции в Python
  26. Тестирование функции сложения
  27. Простой калькулятор Python
  28. Уникальные значения из списка
  29. Упрощение работы с JSON-данными в Python
  30. Работа с множествами в Python
  31. Копирование словарей и списков в Python
  32. Работа со словарями в Python
  33. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  34. Поиск индекса элемента в списке
  35. Переопределение метода __eq__
  36. Работа с контекстными менеджерами
  37. 9 уловок для чистого кода
  38. Удаление ресурса в Python
  39. Поиск файлов по шаблону
  40. Работа с комплексными числами
  41. Избегайте пустого списка
  42. Измерение времени выполнения кода
  43. Функция findall() для поиска вхождений строки
  44. Применение промокода в Много лосося
  45. Утечки переменных цикла в Python 3.x
  46. Функция enumerate() — Python

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