考虑以下代码:
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。但是,如果只有一个功能,则失败。如果用户只输入一个函数,我如何确保代码可以执行?
答案 0 :(得分:5)
我假设您的意思是用户输入fncts = f
?您可以要求用户始终使用序列,fncts = [f]
或fncts = (f,)
,或检查callable(fncts)
;元组和列表不可调用。
答案 1 :(得分:1)
如果第一个参数不是列表(至少是长度为1的列表),则抛出错误或检查fncts是否是单个函数,然后在操作之前将其包装在列表中。