gpt4 book ai didi

python - Python 中的递归函数不返回任何值

转载 作者:太空宇宙 更新时间:2023-11-03 19:41:01 26 4
gpt4 key购买 nike

我有这段代码,由于某种原因,当我尝试返回路径时,我得到 None相反:

def get_path(dictionary, rqfile, prefix=[]):        
for filename in dictionary.keys():
path = prefix + [filename]
if not isinstance(dictionary[filename], dict):
if rqfile in str(os.path.join(*path)):
return str(os.path.join(*path))
else:
get_path(directory[filename], rqfile, path)

有办法解决这个问题吗?

最佳答案

需要返回递归结果:

else:
return get_path(directory[filename], rqfile, path)

否则函数会在执行该语句后结束,结果是 None正在被退回。

您可能想要删除 else:并始终在最后返回:

for filename in dictionary.keys():
path = prefix+[filename]
if not isinstance(dictionary[filename], dict):

if rqfile in str(os.path.join(*path)):
return str(os.path.join(*path))

return get_path(directory[filename], rqfile, path)

因为如果rqfile in str(os.path.join(*path)) False 然后你就结束你的函数而没有 return以及。如果在这种情况下递归不是正确的选择,但返回 None不是,您也需要处理这种边缘情况。

关于python - Python 中的递归函数不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60425427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com