函数调用函数
Posted
技术标签:
【中文标题】函数调用函数【英文标题】: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 中)。
【问题讨论】:
chain
不应该采用非函数参数 - 它返回一个函数。
这能回答你的问题吗? Composing functions in python
【参考方案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))
【讨论】:
以上是关于函数调用函数的主要内容,如果未能解决你的问题,请参考以下文章