Как работает __call__ в Python?

Middle
235 просмотров
AFK Offer AI

__call__ делает экземпляр класса вызываемым как функцию: obj(). Любой объект с __call__ — callable. Проверка: callable(obj). Это паттерн для stateful функций — объект хранит состояние, а вызывается как функция. Декоратор на классе: __init__ принимает функцию, __call__ оборачивает вызов. Также используется в нейросетях (PyTorch nn.Module), в паттерне Strategy, для фабрик с конфигурацией.

Следующий вопрос

Как работает Field в Pydantic?