【发布时间】:2016-10-27 23:33:11
【问题描述】:
我正在尝试编写一个函数,它将一个函数作为其参数并返回一个新函数,该函数运行该函数给定的次数。
例如,如果我有一个函数:
def doubleNumber(num):
return num * 2
我做了以下事情:
doubleThrice = repeatFunction(doubleNumber, 3)
然后我应该得到这个:
doubleThrice(3) # Returns 18 but should it?
到目前为止我有这个,但我不认为它正在做我想要的:
def repeatFunction(func, n):
def inner(inp):
return func(inp) * n
return inner
我的印象是它只是运行函数一次,然后将结果乘以 n,而不是运行函数 n 次,尽管我不确定。
我只是想不出如何在 repeatFunction 函数中构建我需要的函数并将其返回,也没有任何在线帮助对我真正有意义。
【问题讨论】:
-
doubleThrice(3) 在您的示例中返回 18。
-
对不起,为什么会被否决?我为一个我确信其他人之前也担心过的问题提供了一个看起来合理的例子。似乎不可能在这里问一个好问题。
-
@dot.Py 是吗?我真的不确定我给定的功能在这种情况下会做什么,这就是我到目前为止所得到的。正在寻找一些关于如何最好地做我所描述的事情的指导:)
标签: python function closures decorator