我的問(wèn)題與這里的問(wèn)題密切相關(guān): Python 中的函數(shù)鏈 ,這是CodeWars 上的“A 鏈添加函數(shù)”問(wèn)題。鏈接中有很多有用的解決方案,但我只想找出我自己的解決方案有什么問(wèn)題。例如,我想到的第一件事就是使用 Curryingdef add(a): def add2(b): return b + a return add2add(1)(2)會(huì)給我3作為輸出?,F(xiàn)在,我想補(bǔ)充遞歸,這樣add(1),add(1)(2)(3)和add(1)(2)(3)(4)等也按預(yù)期方式工作:def add(a): if not callable(a): return a else: def add2(b): return b + add(a) return add2這次按預(yù)期add(1)返回1,但是add(1)(2),add(1)(2)(3)等等給了我錯(cuò)誤:TypeError: 'int' object is not callable誰(shuí)能指出這里有什么問(wèn)題?另外,如何解決呢?非常感謝您的幫助!
2 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
誰(shuí)能指出這里有什么問(wèn)題?
當(dāng)你調(diào)用它add(1)
,然后a
是1
(所以不是調(diào)用),它會(huì)返回1
。下一步:您將擁有1(2)
但因?yàn)?code>1不是可調(diào)用的所以失敗了。
另外,如何解決呢?
你不能,因?yàn)槟阈枰朗裁磿r(shí)候結(jié)束遞歸,但你只知道在你完全完成當(dāng)前步驟后是否需要更深入。因此,不幸的是,您選擇的方法不起作用,您必須尋找不同的方法。這就是您指向有關(guān)函數(shù)鏈的問(wèn)題的鏈接的地方。
添加回答
舉報(bào)
0/150
提交
取消