对于Python中的单个函数,循环使用函数数组失败

时间:2012-03-14 14:18:47

标签: python

考虑以下代码:

def integ(fncts, propagate, stpSz):
    conditions = propagate.copy()
    iterator = 0
    for i in fncts:
        conditions[iterator] = conditions[iterator] + stpSz *  i(0)
        iterator+=1

    return conditions

其中fncts是一系列函数,如下所示:

 f1 = lambda x: x
 f2 = lambda x: 2*x
 fncts = (f1, f2)

问题是,上面的代码适用于length(fncts)> 1。但是,如果只有一个功能,则失败。如果用户只输入一个函数,我如何确保代码可以执行?

2 个答案:

答案 0 :(得分:5)

我假设您的意思是用户输入fncts = f?您可以要求用户始终使用序列,fncts = [f]fncts = (f,),或检查callable(fncts);元组和列表不可调用。

答案 1 :(得分:1)

如果第一个参数不是列表(至少是长度为1的列表),则抛出错误或检查fncts是否是单个函数,然后在操作之前将其包装在列表中。