Подтвердить что ты не робот

Оператор overload() в Python

Я пытаюсь изучить currying в Python для своего класса, и мне нужно перегрузить оператор() для него. Однако я не понимаю, как я могу перегружать оператор(). Можете ли вы объяснить логику перегрузки круглых скобок? Должен ли я сначала перегружать (а затем), или я могу сделать что-нибудь из этого? Кроме того, существует специальное имя для оператора скобок?

4b9b3361

Ответ 1

Вы можете сделать объект вызываемым, реализовав метод __call__:

class FunctionLike(object):
    def __call__(self, a):
        print("I got called with {!r}!".format(a))

fn = FunctionLike()
fn(10)

# --> I got called with 10!