J'ai un code Python qui ressemble fondamentalement ceci:Python: Fonction retourne toujours Aucun
my_start_list = ...
def process (my_list):
#do some stuff
if len(my_list) > 1:
process(my_list)
else:
print(my_list)
return my_list
print(process(my_start_list))
La chose étrange est: impression (my_list) imprime le contenu approprié. Cependant, la deuxième instruction d'impression qui imprime la valeur de retour de la fonction imprime toujours "Aucun". Même si je remplace l'instruction de retour normale par return ("abc") il est toujours None.
Comme le contenu de la variable semble être correct une ligne avant l'instruction return, je ne sais pas par où débuter le débogage. Y at-il des problèmes communs qui peuvent causer cela?
utilisez 'return process (my_list)' lors de l'appel récursif. –
@ NPE Je suppose que '#do stuff 'comprend la modification de la liste d'une manière ou d'une autre; sinon tu as raison; ceci devrait se répéter indéfiniment. –
related: http://stackoverflow.com/questions/11097822/weird-function-return-value –