考慮下面的代碼段:循環過度的功能陣列出現故障爲單功能在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。但是,如果只有一個功能,則失敗。如果用戶只輸入一個函數,如何確保代碼可以執行?
它是如何失敗?你會得到什麼錯誤? – 2012-03-14 14:22:58
請根據「失敗」進行展開。有沒有回溯?如果是這樣,請將其添加到您的問題。我懷疑你正在像'integ((f1),propagate,stpSz)'調用'inteq''而不是像這樣'integ((f1,),propagate,stpSz)''。注意'f1'後面的逗號。這使它成爲一個元組而不僅僅是括號。 – 2012-03-14 14:24:13