2011-08-01 29 views
2

我正在寻找解决以下复杂参数传递问题的方法:复杂的Python参数传递需求的解决方案是什么?

我想将函数的列表及其参数作为参数传递给另一个使用Python的函数。我知道有可能将函数作为参数传递, 但是可以将函数列表和它的参数传递给python吗?

我的示例代码:

self.myObject = Column(self.orderedColumnDictionary, \ 
    fillingOutMethods = [[firstFillingOutMethod, parameter1], \ 
    [anotherFillOutMethod, parameter2, parameter3]]) 

在这段代码中,我初始化类栏目的对象。所以在创建对象时,我想要传递各种函数作为参数。我正在考虑将这个对象所需的所有函数作为lits来传递。例如,在这个示例代码中,我的函数是firstFillingOutMethod,其中我将parameter1作为参数传递,另一个函数是 anotherFillOutMethod,其中我想传递参数2和参数3作为参数。

因此,我期待着有关执行此类任务的任何建议。

谢谢

+1

是的,你能做到这样,你只需要正确处理您在列表中功能。 –

回答

5

下面是一个例子:

def f1(a): 
    return a*a 

def f2(a,b): 
    return a*b 

flist = [[f1, 2], [f2, 3, 4]] 

print [item[0](*item[1:]) for item in flist] 

输出为:

[4, 12] 
+0

谢谢你的解决方案,但是有没有其他方法可以解决同一个问题,而不是将它们传递给列表。在我的文章中,我提到我想通过列表,因为我不知道是否有其他方法可以做。谢谢。 –

+0

我认为通过列表是正确的选择,或者你可以将它作为元组传递:[(f1,(2,)),(f2,(3,4))],并且调用变为项[0] (*项[1]) – HYRY

相关问题