Курс 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. ChainMap избыточные ключи
  3. Работа с модулем bisect
  4. Преобразование range в итератор
  5. Сглаживание списка
  6. Декораторы в Python
  7. Метод matmul для умножения матриц
  8. Глобальные переменные в Python
  9. Особенности ключей словаря в Python
  10. Удаление ресурса в Python
  11. Создание Radio кнопок в tkinter
  12. Генерация случайных чисел в Python
  13. Метод split() для разделения строк
  14. Работа с датой и временем в Python
  15. Безопасный доступ к значениям словаря
  16. Работа со строками в Python
  17. Принципы Zen Python
  18. Чтение и запись TOML-конфигов
  19. Проверка подстроки в строке
  20. Работа со строками в Python.
  21. Форматирование строк с % в Python
  22. Создание namedtuple из словаря
  23. Многопроцессорное программирование в Python
  24. Библиотека Emoji: использование смайлов в Python
  25. Метод invert для побитового отрицания
  26. Преобразование чисел в Python
  27. Оптимизация памяти с __slots__
  28. Регистрация на курсы SF Education
  29. Хранение данных с помощью dataclasses
  30. Выражения-генераторы в Python
  31. Функциональное программирование.
  32. Экспорт данных с помощью writefile
  33. Просмотр атрибутов и методов класса
  34. Работа с collections в Python
  35. Установка пакетов с помощью pip
  36. Установка и использование библиотеки google
  37. Округление чисел с помощью round
  38. Нахождение хеша для бесконечности и NaN в Python
  39. Удаление дубликатов с помощью множеств
  40. Метод join() с набором
  41. Работа с исключениями в Python
  42. Python и Юникод: работа с цифрами
  43. Выбор редактора кода.
  44. Импорт с альтернативным именем
  45. Работа с асинхронными задачами в Python
  46. Использование html-скриптов в Jupyter Notebook
  47. Функция findall() для поиска вхождений строки

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