在recurison调用上更新python列表返回None

时间:2015-01-06 12:12:46

标签: python

def get_name():
    import random
    lst = ["aa", "bbb", "ccc", "dddd", "eee", "stop"]
    return random.choice(lst)

def poi(name, lst):
    res = get_name()
    lst.append(res)
    if res !="stop":
        poi(name, lst)
    else:
        print lst
        return lst


if __name__ == '__main__':
    print poi("xx", [])

poi()方法在传递的列表中添加项目,并应返回列表,直到"停止"在列表中。如果"停止"在列表中然后返回列表

print lst打印['bbb', 'dddd', 'bbb', 'stop']#1

但是

`print poi("xx", [])` prints `None`  #2

为什么#2正在打印None而不是更新列表?

1 个答案:

答案 0 :(得分:2)

poi(name, lst)

应该是

return poi(name, lst)

如果没有return语句,该函数将隐式返回None