python高阶函数:带参数lis的泛型函数调用

2024-04-19 13:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中寻找一个高阶函数,它接受一个函数作为参数和一系列相应的参数,并调用参数列表中的函数。比如:

def exec(func,paramlist):
    return CALL(func,paramlist)  

paramlist长度未确定,因为它与传入的每个func一起使用。调用应该能够提取列表中的元素,并将每个参数放入正确的槽中,然后进行函数调用。你知道吗

作为参考,在Q language中有一个处理泛型函数调用的“apply”函数:

f1: {x}
f2: {x+y}
execFunction: {[fun;param] .[fun;param] }
execFunction[f1;enlist 1] // result is 1
execFunction[f2;(1 2)] // result is 3

Tags: 函数列表参数paramisdefresultf2
2条回答

Python过去有一个apply函数,但是在python3中它被删除了,因为使用*运算符将列表解压成单个参数非常容易。实际上apply函数可以这样编写:

def apply(func, paramlist)
    return func(*paramlist)

当然,这非常简单,您不必为它编写函数;只要在需要的地方编写func(*paramlist)。你知道吗

如果func需要多个参数,而paramlist是一个参数列表,则如下所示:

func(*paramlist)

相关问题 更多 >