我有一个简单的代码,可使用存储在字典中的图形查找路径。代码完全是:

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值正确,但是返回的路径不是我想要的?

最佳答案

这不应该吗

find_path(dct, next_, depth)




return find_path(dct, next_, depth)
# ^^^^
# Return


在Python中(不同于Ruby),您必须显式return一个值。否则,返回None

关于python - 可变默认参数不返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3879307/

10-11 09:31