Back to questions
Junior — Middle
74
Можете объяснить назначение и использование метода __call__ в Python?
Answer from AI
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.