call делает экземпляр класса вызываемым как функцию: obj(...). Это удобно, когда операция должна хранить состояние или иметь настраиваемое поведение между вызовами.
Для чего нужен магический метод __call__?
__call__ делает экземпляр класса вызываемым как функцию: obj(...). Это удобно, когда операция должна хранить состояние или иметь настраиваемое поведение между вызовами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
call делает экземпляр класса вызываемым как функцию: obj(...). Это удобно, когда операция должна хранить состояние или иметь настраиваемое поведение между вызовами.
Например, объект валидатора может хранить правила в init, а проверять значение в call. Такой объект можно передать как callback или использовать как декоратор. Вызов экземпляра не создаёт новый экземпляр этого же класса автоматически: он исполняет метод существующего объекта. Не следует путать call экземпляра с механизмом вызова самого класса через его метакласс.