我有以下的遞歸函數:Python:通過遞歸函數調用傳遞列表會導致列表變爲'NoneType',爲什麼?
def recurse(y,n):
if len(y) == n:
return y
else:
return recurse(y.append(1),n)
當我運行它:
x=recurse([],10)
我收到以下錯誤:
TypeError: object of type 'NoneType' has no len()
看來,功能得到過去,如果語句,然後它進入遞歸的下一級,在那裏,y.append(1)是'NoneType',爲什麼不是:'[1]'如預期的那樣?我已經考慮了一段時間,我似乎無法弄清楚。任何見解都被讚賞!