Я пытаюсь создать функцию, которая получает число и возвращает функцию. Например:

>>> const_function(2)(2)
2
>>> const_function(4)(2)
4

Как вернуть функцию в качестве вывода? Я пытался написать следующее:

def const_function(c):
    def helper(x):
        return c
    return helper(x)

Почему это не работает?

limitless

Ответов: 2

Ответы (2)

Попробуйте:

return helper

Когда вы это сделаете:

return helper(x)

он вычисляет результат helper(x) и возвращает его. Когда вы return helper, она вернет саму функцию.

Вы возвращаете результат вызова функции. Если вы хотите вернуть саму функцию, просто обратитесь к ней, не вызывая ее:

def const_function(c):
    def helper(x):
        return c
    return helper # don't call it

Сейчас вы можете использовать его с желаемыми результатами:

>>> const_function(2)
.helper at 0x0000000002B38D90>
>>> const_function(2)(2)
2
>>> const_function(4)(2)
4

2022 WebDevInsider