Junior — Middle
Pouvez-vous expliquer la finalité et l'utilisation de la méthode __call__ en Python?
sobes.tech IA
Réponse de l'IA
Метод __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.