[英]Function calling functions
创建一个 function,它将任意数量的函数作为位置 arguments。 function 一一返回函数参数的执行。 请参阅示例以获得更好的理解(我们称之为 function链)。
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)
它不工作。 无法理解如何将非 function 参数用于此 function(在上面的示例 37 中)。
您是否正在寻找这样的东西:
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))
Output:
(39, (9.25, 9))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.