Курс 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. Добавление Progressbar в Python
  2. Повторение элементов в Python
  3. Проверка списка: any() и all()
  4. Создание списков в Python
  5. Различия символов в Python
  6. Работа с изображениями PIL
  7. ChainMap избыточные ключи
  8. Многострочные строки в Python
  9. JSON в Python: модуль, dump, dumps, load
  10. Протокол управления контекстом
  11. JMESPath в Python
  12. Преобразование букв в нижний регистр
  13. Класс Counter() для подсчета элементов
  14. Метод append() для списка
  15. Создание Telegram-бота на Python
  16. Оптимизация методов в Python 3.7
  17. Библиотека sh: использование команд bash в Python
  18. Сортировка в Python
  19. Оператор in в Python
  20. Форматирование строк с помощью f-строк
  21. Работа с необработанными строками
  22. Срез списка в Python
  23. Создание уникального проекта
  24. Красивый вывод списка
  25. Форматирование строк в Python
  26. Метод __index__ в Python
  27. Преобразование строк в числа в Python
  28. Документация функции help() в Python
  29. Работа с itertools
  30. Взаимодействие с внешними процессами в Python
  31. Фильтрация данных в Python.
  32. Преобразование списка в словарь через генератор
  33. Логирование с Logzero
  34. Сериализация объектов в Python
  35. Объединение словарей в Python
  36. Анализ кода — Python
  37. Оператор space-invader
  38. Замена подстроки
  39. Работа с датой и временем в Python
  40. Умножение строк и списков
  41. Работа с байтовыми строками в Python
  42. Конкатенация строк в Python
  43. discard() — удаление элемента из множества
  44. Разделение строк методом split()
  45. Оператор «not» в Python
  46. Big O оптимизация
  47. Асинхронное выполнение задач в процессах
  48. Поиск самого длинного слова в списке с использованием max()

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