Sobes.tech
Назад к вопросам
Junior — Middle
73

Можете объяснить назначение и использование метода __call__ в Python?

Ответ от нейросети

sobes.tech AI

Метод __call__ в Python позволяет сделать экземпляр класса вызываемым, как функцию. Если в классе определён этот метод, то можно использовать объект класса с синтаксисом вызова obj(), и при этом будет выполнен код внутри __call__.

Это удобно для создания объектов с поведением, похожим на функции, но с сохранением состояния.

Пример:

class Multiplier:
    def __init__(self, factor):
        self.factor = factor

    def __call__(self, value):
        return value * self.factor

mul_by_3 = Multiplier(3)
print(mul_by_3(10))  # Выведет 30

В этом примере объект mul_by_3 ведёт себя как функция, умножающая входное значение на 3.