Python递归操作列表返回None

14 投票
1 回答
4164 浏览
提问于 2025-04-15 21:22
def foo(a):
    a.append(1)
    if len(a) > 10:
        print a
        return a
    else:
        foo(a)

为什么这个递归函数会返回None(下面有详细记录)?我不太明白我哪里做错了。

In [263]: x = []

In [264]: y = foo(x)
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

In [265]: print y
None

1 个回答

20

else这个部分,你没有返回任何东西:

    else:
        return foo(a)

撰写回答