递归失败,并显示None对象

时间:2019-03-28 14:04:41

标签: python recursion

我想编写一个函数,该函数返回包含范围内数字的列表。它必须以相反的顺序返回列表。使用下面的代码,我总是会收到错误"AttributeError: 'NoneType' object has no attribute 'append'"

def ret(f,l):
    if f == l:
        e = []
        return e
    else:
        return ret(f+1,l).append(f)

实现此目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

append返回None,因此ret返回None,然后您无法.append这样做。请执行以下任一操作以返回列表:

l_ = ret(f + 1, l)
l_.append(f)
return l_

或者:

return ret(f + 1, l) + [f]