Курс 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. Работа с библиотекой xkcd
  4. Метод eq для сравнения объектов
  5. Регулярные выражения: метод match
  6. Вычисление логарифмов в Python
  7. Декораторы в Python
  8. Контроль точности вывода чисел
  9. Функции классификации комплексных чисел
  10. Объединение словарей в Python
  11. Передача словаря через **kwargs
  12. Преобразование регистра строк
  13. Открытие и редактирование скриптов Python
  14. Объединение словарей в Python
  15. Работа с каталогами в Python
  16. Получение списка кортежей из словаря
  17. Списки: объединение, изменение
  18. Работа со слайсами
  19. Генераторы в Python
  20. Оператор del в Python
  21. Запуск Python из интерпретатора
  22. Копирование списков в Python
  23. Создание новых функций через partial
  24. Работа с комплексными числами
  25. Преобразование чисел в восьмеричную строку
  26. Метод get для словарей
  27. Решение переменной Шредингера
  28. Модуль xkcd: загрузка комиксов
  29. Тестирование с unittest
  30. Поиск шаблона в строке
  31. Оптимизация сравнения в Python
  32. Определение наиболее частого элемента с помощью collections.Counter
  33. Условные выражения в Python
  34. Модуль future Python
  35. Объединение словарей в Python 3.5+
  36. Обработка исключений в Python
  37. Работа с переменными в Python
  38. Функция enumerate() — Python
  39. Шаблоны и наследование в Flask
  40. Создание GUI на Tkinter
  41. Проверка подстроки в строке
  42. Оператор is в Python
  43. Подписка на Kaspersky Team
  44. Лямбда-функции для min/max
  45. Цикл for в Python
  46. Работа со словарями в Python

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