Python:返回运行给定函数n次的函数

标签 python function closures decorator

我正在尝试编写一个函数,该函数将一个函数作为其参数,并返回一个新函数,该函数运行该函数指定的次数。

例如,如果我有一个函数:

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函数中构建我需要的函数并返回它,也没有任何在线帮助对我来说真正有意义。

最佳答案

如果您想多次应用一个函数,您可能需要一个重复多次的循环:

def repeatFunction(func, n):
    def inner(inp):
        for i in range(n):
            inp = func(inp)
        return inp
    return inner

关于Python:返回运行给定函数n次的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38028781/

相关文章:

sql - PL/SQL 函数中的 OUT/IN OUT 参数

python - 在python中将不同长度的数组写入csv

javascript - 使用 jquery cookie 显示/隐藏元素 (jQuery)

python - Seaborn 未在导入时设置其默认调色板

PHP将所有参数作为数组获取?

javascript - 如何在闭包内部将变量从全局移动到局部

python - lambda 函数闭包捕获什么?

Javascript变量复制范围

python - 计算 pandas 数据框中的日期时间间隔之间有多少个实例

python - 如何使用 python 读取 Windows 平板电脑中的加速度计?