函数调用函数
Function calling functions
创建一个将任意数量的函数作为位置参数的函数。函数 returns 一个一个地执行函数参数。请参阅示例以便更好地理解(我们将此函数称为 chain)。
my_func = chain(lambda x: x + 2, lambda x: (x/4, x//4))
my_func(37)
应该return
(9.75, 9)
我尝试做类似的事情:
def chain(x,*args):
for arg in args:
arg(x)
它不起作用。无法理解如何将非函数参数传递给此函数(在上面的示例 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))
输出:
(39, (9.25, 9))
创建一个将任意数量的函数作为位置参数的函数。函数 returns 一个一个地执行函数参数。请参阅示例以便更好地理解(我们将此函数称为 chain)。
my_func = chain(lambda x: x + 2, lambda x: (x/4, x//4))
my_func(37)
应该return
(9.75, 9)
我尝试做类似的事情:
def chain(x,*args):
for arg in args:
arg(x)
它不起作用。无法理解如何将非函数参数传递给此函数(在上面的示例 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))
输出:
(39, (9.25, 9))