Назад к вопросам
Junior — Middle
71
Какова цель использования метода __call__ в Python и в чем его преимущества?
Компании, где спрашивали
АО К-Технологии
Ответ от нейросети
sobes.tech AI
Метод __call__ в Python позволяет сделать экземпляр класса вызываемым как функцию. Это значит, что после определения этого метода можно использовать объект класса с синтаксисом вызова, например obj(), и при этом будет выполнен код внутри __call__.
Преимущества использования __call__:
- Позволяет создавать объекты-функции с внутренним состоянием.
- Удобно для реализации паттернов, например, фабрик или декораторов.
- Улучшает читаемость и гибкость кода, объединяя данные и поведение.
Пример:
class Multiplier:
def __init__(self, factor):
self.factor = factor
def __call__(self, x):
return x * self.factor
double = Multiplier(2)
print(double(5)) # Выведет 10
Здесь объект double ведет себя как функция, умножающая число на 2.