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

Perché questa funzione ricorsiva restituisce Nessuno (vedere la trascrizione di seguito)? Non riesco a capire cosa sto sbagliando.Ricorsione Python con ritorni elenco Nessuna

 
In [263]: x = [] 

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

In [265]: print y 
None 

risposta

15

non riesci a tornare nulla nella clausola else:

else: 
     return foo(a) 
+0

oh duh, stupido me. Grazie! – newman

+1

Dove eri due ore fa !! –