【问题标题】:Function calling functions函数调用函数
【发布时间】:2022-01-12 15:54:58
【问题描述】:

创建一个将任意数量的函数作为位置参数的函数。该函数一一返回函数参数的执行。请参阅示例以获得更好的理解(让我们将此函数称为 chain)。

my_func = chain(lambda x: x + 2, lambda x: (x/4, x//4))
my_func(37)

它应该返回

(9.75, 9)

我试图做类似的事情:

def chain(x,*args):
    for arg in args:
        arg(x)

它不工作。无法理解如何将非函数参数传递给此函数(在上面的示例 37 中)。

【问题讨论】:

标签: python functional-programming


【解决方案1】:

您是否正在寻找这样的东西:

def chain(*funcs):
    def chained(*args, **kwargs):
        return tuple(func(*args, **kwargs) for func in funcs)
    return chained

my_func = chain(lambda x: x + 2, lambda x: (x/4, x//4))
print(my_func(37))

输出:

(39, (9.25, 9))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多