这样的事情会起作用:
def no_arg(): return 5def one_arg(x): return xdef multiple_args(x, y): return x * ydef function_results_sum(*args, **kwargs): result = 0 for func in args: result += func(*kwargs[func.__name__]) return result
输出:
function_results_sum( no_arg, one_arg, multiple_args, no_arg=(), one_arg=(23, ), multiple_args=(1,5))33
您所要求的唯一区别是,您必须将args放入一个元组中,然后解压缩为args以便以后传递。
如果不想为无参数函数提供任何内容,则可以再次检查func名称是否在kwargs中:
def function_results_sum(*args, **kwargs): result = 0 for func in args: if func.__name__ i kwargs: result += func(*kwargs[func.__name__]) else: result += func() return result



