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

यह रिकर्सिव फ़ंक्शन क्यों लौटाता है (नीचे ट्रांसक्रिप्ट देखें)? मैं समझ नहीं पा रहा हूं कि मैं क्या गलत कर रहा हूं।सूची रिटर्न के साथ पायथन रिकर्सन कोई नहीं

 
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

+1

आप दो घंटे पहले कहाँ थे !! –

संबंधित मुद्दे