2010-04-08 48 views
11
def foo(a): 
    a.append(1) 
    if len(a) > 10: 
     print a 
     return a 
    else: 
     foo(a) 

爲什麼這個遞歸函數返回None(請參閱下面的腳本)?我不明白我做錯了什麼。使用列表返回的Python遞歸無

 
In [263]: x = [] 

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

In [265]: print y 
None 

回答

15

您不要在else條款任何回報:

else: 
     return foo(a) 
+0

哦廢話,愚蠢的我。謝謝! – newman 2010-04-08 10:46:43

+1

兩個小時前你在哪裏! – 2017-10-05 11:29:56