Junior — Middle
109
¿Cuál es el propósito de usar el método __call__ en Python y cuáles son sus ventajas?
Empresas donde se preguntó
АО К-Технологии
Respuesta de la IA
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.