Курс 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. Работа с очередями в Python
  3. Конвертация изображений в PDF
  4. Сортировка и разворот списка
  5. Реверс строки в Python
  6. Оператор морж в Python 3.8
  7. Метод rmatmul для обратного матричного умножения
  8. Метод __irshift__ для побитового сдвига вправо
  9. Курсы Яндекс Практикум
  10. Инверсия списка и строки в Python
  11. Python: Фильтрация списков с помощью filter()
  12. Регулярные выражения: метод match
  13. Работа с геоданными с помощью geopy
  14. Разделение строки на пары ключ-значение.
  15. Форматирование строк в Python.
  16. Функции range() в Python
  17. Тайное преобразование типа ключа
  18. Создание списка через итерацию
  19. Работа со словарями с defaultdict из collections
  20. Метод rmatmul для пользовательских матриц
  21. Преобразование документов в PDF с помощью Spire.Office
  22. Работа с комплексными числами
  23. Pillow: работа с изображениями
  24. Выборка чисел
  25. Функция enumerate в Python
  26. Работа с CSV файлами
  27. Повторение и перенос строки
  28. Частичное применение функций в Python
  29. Функция с *args.
  30. Объединение списков в Python
  31. Декоратор @override
  32. Управление IP-адресами через прокси
  33. Упрощение работы с JSON-данными в Python
  34. Объединение списков в Python
  35. Управление доступом к модулю
  36. Генерация UUID в Python
  37. Работа с библиотекой xkcd
  38. Структура строк в Python
  39. Отправка поздравлений по дню рождения
  40. Импорт модуля из другого каталога
  41. Преобразование числа в восьмеричную строку
  42. Метод join() для объединения элементов в строку.
  43. Метод init в Python
  44. Оператор space-invader
  45. Numpy: объединение массивов
  46. Использование функции enumerate()

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