12


4

リスト付きのPython再帰はNoneを返します
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 Answer


16


`else`句には何も返しません:

    else:
        return foo(a)