如何在另一个函数中调用多个函数作为参数?

How to call multiple functions as arguments inside another function?

我正在努力进行以下练习:

特定函数的参数应作为关键字参数传递给 function_results_sum,它应该看起来像 FUNCTION_NAME=ARGUMENTS

function_results_sum 应该 return 在 运行 每个带参数的传递函数之后收到的所有结果的总和

如果函数没有参数,则不应将参数传递给 function_results_sum

如果函数接受 1 个参数,作为关键字参数 int 将被传递给 function_results_sum(例如 one_arg_function_name=2)

如果函数接受超过 1 个参数 - 应传递元组(例如 two_args_function_name=(1, 2) )

它应该如何工作: 第一个例子 功能签名: def no_arg() 定义 one_arg(a) def multiple_args(a, b, c, e, f)

呼叫function_results_sum: function_results_sum( no_arg, one_arg, multiple_args, one_arg=23, multiple_args=(1, 2, 3, 4, 5) )

如何调用 function_results_sum 的第二个示例: function_results_sum( no_arg, one_arg, multiple_args, one_arg=-1245, multiple_args=(45, 65, 76, 123456, 111.222) )

!在函数对象上使用 name 属性 !

这是我想出的,但是我不知道为什么我得到的结果是存储输出的单元格的地址:

控制台输出:

<function ident at 0x00000288C0A72048> <function no_arg at 
0x00000288C0A6BF28> 
<function mult at 0x00000288C0A720D0>

我的实现:

def function_results_sum(*args, **kwargs):
    return [*args]
def no_arg():
    return 5
def ident(x):
    return x
def mult(x, y):
    return x * y
a = function_results_sum(ident, no_arg, mult, ident = 2, mult = (2, 3))
print(a)

调用单参数函数的提示如下:

def function_results_sum(*args, **kwargs):
    func = args[0]
    function_name = func.__name__
    parameter = kwargs[function_name]
    return func(parameter)

def ident(x):
    return x

a = function_results_sum(ident,ident=2)
print(a)

args 将包含要调用的函数列表,kwargs 包含使用函数名称作为键的参数列表。看看你能不能搞清楚这三种函数的调用方式