所以基本上一個人幫助我改進我的代碼。問題是,它仍然令人失望,並且不起作用。我想要做的是重置lenRecur.number,所以我可以再次使用該函數,使用其他字符串並獲得正確的答案(不是太大的答案)如何重置在Python 2.73中分配給函數的變量?
我想,問題是與hasattr。但我無法刪除它,因爲如果我這樣做,我的字符串長度計算器將無法工作。
無論如何,即使我在函數後添加了lenRecur.number = 0,它仍然不起作用。
這就像不可能的,因爲當函數命中「返回」,它完成了,期間。如果我在「返回」之前重置它,它將返回0,不正確的答案,所以是的,我在這裏遇到了很大的麻煩。
def lenRecur(aStr):
if not hasattr(lenRecur, 'number'):
lenRecur.number = 0
'''
aStr: a string
returns: int, the length of aStr
'''
if aStr == '':
return lenRecur.number
else:
lenRecur.number += 1
return lenRecur(aStr[:-1])
附:我的程序(?)/ script(?)的目標是測量輸入字符串的長度,而不使用input()方法。當試圖重新創建length()方法時,使用更原始的方法。
該腳本將不得不有很多不同的輸入,所以它應該重置。
這看起來像一個[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。不要問「我如何針對某些不明確指定的問題做出解決方案」,請告訴我們問題並尋求幫助解決問題。無論你的問題是什麼,你可能已經走上了錯誤的軌道。 – abarnert
另外:「即使我在函數後添加了lenRecur.number = 0,它仍然不起作用」。真?我把你的函數,然後這樣做:'print lenRecur('abc'); lenRecur.number = 0;打印lenRecur('abcd')',我得到了'3'和'4',就像我想的那樣。 – abarnert
設置變量爲無效嗎? –