Курс 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. Метод split() в Python
  2. Форматирование строк в Python
  3. Создание циклической ссылки
  4. Мониторинг памяти с Pympler
  5. Разделение строки с регулярными выражениями
  6. Типы возвращаемых значений в Python
  7. Основы Python за 14 дней
  8. Добавление элемента в список.
  9. Оператор @ для умножения матриц
  10. TypedDict для kwargs в Python 3.12
  11. Блок else в Python
  12. Получение срезов итераторов
  13. Функция product() в Python
  14. Работа с argparse
  15. Функции map, filter, reduce
  16. Упрощение работы с JSON-данными в Python
  17. Работа с SQLite в Python
  18. Работа с WindowsPath()
  19. Установка и обучение ChatterBot
  20. Переворот последовательности
  21. Именованные кортежи в Python
  22. Установка виртуального окружения Python
  23. Оптимизация интернирования строк
  24. Подсчет элементов с помощью Counter из collections
  25. Запуск внешних программ с subprocess
  26. Работа с массивами в Numpy
  27. Вычисление натуральных логарифмов в NumPy
  28. CLI-инструмент howdoi
  29. Работа с файлами и директориями в Python.
  30. Проверка окончания строки с помощью str.endswith()
  31. Управление виртуальными окружениями в Python
  32. Метод rsub в Python: расширение функциональности вычитания
  33. Импорт модулей в Python 3.12
  34. Управление ресурсами с контекстными менеджерами
  35. Обработка исключений в Python
  36. Работа с IP-адресами в Python
  37. Улучшение читаемости кода в Python
  38. Поиск подстроки в строке
  39. Установка random seed в Python
  40. Функция product() из itertools
  41. Создание новых функций через partial
  42. Получение ID текущего процесса
  43. Поиск всех индексов подстроки
  44. Метод setitem в Python
  45. Замыкания в Python
  46. Поиск уникальных элементов строкой в Python
  47. Вывод сложных структур данных с помощью pprint
  48. Объединение итераторов
  49. Поиск самого длинного слова в списке с использованием max()

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