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

Dlaczego ta funkcja rekurencyjna zwraca Brak (patrz zapis poniżej)? Nie bardzo rozumiem, co robię źle.Rekursja python z listą zwraca Brak

 
In [263]: x = [] 

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

In [265]: print y 
None 

Odpowiedz

15

Nic nie wrócić w klauzuli else:

else: 
     return foo(a) 
+0

oh duh, głupi ja. Dzięki! – newman

+1

Gdzie byłeś dwie godziny temu !! –