我有一个简单的代码,可以使用存储在字典中的图表来查找路径。代码完全正确:
def find_path(dct, init, depth, path=[]):
if depth == 0:
return path
next_ = dct[init]
depth-=1
find_path(dct, next_, depth)
如果我在return path
之前打印路径,则会打印出正确的路径(在初始深度为5
之后)。但是,返回的值为None
。我不知道发生了什么事!
为什么path
的值高于return
是正确的,但返回的路径不是我想要的?
答案 0 :(得分:3)
不应该这个
find_path(dct, next_, depth)
是
return find_path(dct, next_, depth)
# ^^^^
# Return
在Python中(与Ruby不同),您必须明确return
一个值。否则返回None
。
答案 1 :(得分:1)
因为您使用大于0的depth
来调用它,这会导致它从结尾处掉落并返回None
。