【发布时间】:2013-03-25 05:09:10
【问题描述】:
我有一些基本上看起来像这样的 Python 代码:
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))
奇怪的是:print(my_list) 打印出正确的内容。但是,打印函数返回值的第二个打印语句总是打印“无”。 即使我用 return("abc") 替换正常的 return 语句,它仍然是 None。
由于变量的内容在return语句前一行似乎是正确的,我不知道从哪里开始调试。 是否有任何常见问题可能导致此问题?
【问题讨论】:
-
递归调用时使用
return process(my_list)。 -
@NPE 我假设
#do some stuff包括以某种方式修改列表;否则你是对的;这应该无限期地递归。 -
do some stuff 确实修改了列表,所以不应该发生无限递归。但丢失的回报确实是问题所在,我不知道必须这样做。
-
这能回答你的问题吗? Why does my recursive function return None?