Курс 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. Python union() функция — объединение множеств
  5. Обработка ошибки IndexError
  6. Динамическая типизация в Python
  7. Проверка класса объекта
  8. Библиотека Chartify: руководство
  9. Генерация UUID в Python
  10. Упрощение работы с JSON-данными в Python
  11. Обработка исключений в Python
  12. Сортировка в Python
  13. Numpy: разбиение массивов
  14. Объединение списков в Python
  15. Работа с Path в Python
  16. Конвертация коллекций в Python
  17. Логические значения в Python
  18. Импорт модулей в Python 3.12
  19. Списки: объединение, изменение
  20. Генераторы в Python
  21. Обработка исключений
  22. Список переменных в Python
  23. Создание веб-приложения с Flask
  24. Логирование в Python
  25. Удаление символа из строки
  26. Сравнение строк в Python
  27. Условные выражения в Python
  28. JMESPath в Python
  29. Работа с прокси в Python
  30. Создание словарей в Python
  31. Оператор Walrus в Python 3.8
  32. Модуль math: константы π и e
  33. Метод bool() в Python
  34. Управление памятью в numpy.
  35. Получение текущей даты и времени с помощью datetime
  36. Оператор assert в Python
  37. Объединение словарей в Python 3.5+
  38. Копирование файлов с shutil()
  39. Метод __index__ в Python
  40. Функция zip() — объединение последовательностей
  41. Удаление URL-адресов в Python
  42. Аргумент по умолчанию
  43. Создание новых функций через partial

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