Sobes.tech
Назад к вопросам
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.