递归函数在Python中不返回任何值

安德烈斯

我有这段代码,由于某种原因,当我尝试返回路径时,我得到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)

有办法解决吗?提前致谢。

马丁·彼得斯(Martijn Pieters)

您需要返回递归结果:

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递归不是正确的选择,而在返回则不是正确的选择,那么您也需要处理这种边缘情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从返回值的函数中不返回任何内容?

来自分类Dev

PHP函数不返回任何值

来自分类Dev

函数不返回任何值,而是返回预期值“ None”

来自分类Dev

函数在oracle中不返回任何内容

来自分类Dev

函数不返回任何内容python

来自分类Dev

递归函数不返回对象值之和

来自分类Dev

Python递归函数不返回

来自分类Dev

Python函数不返回任何东西

来自分类Dev

如何从python中的递归函数返回值?

来自分类Dev

Python递归函数不返回

来自分类Dev

jenkinsfile中的'ChoiceParameter'不返回任何值

来自分类Dev

在Python中,我的函数不返回值

来自分类Dev

Python:在不返回任何内容的函数上

来自分类Dev

如何在C ++中的字符串函数中不返回任何值?

来自分类Dev

Python递归函数不返回

来自分类Dev

自定义递归函数|根本不返回任何值| 在C中

来自分类Dev

mysqli函数不返回任何值

来自分类Dev

Python:抛出异常或不返回任何值?

来自分类Dev

函数不返回任何值,而是返回预期值“ None”

来自分类Dev

值返回函数不返回任何值

来自分类Dev

函数不返回任何内容python

来自分类Dev

递归函数不返回

来自分类Dev

模型中的递归函数不返回任何内容-Laravel

来自分类Dev

React函数不返回任何值

来自分类Dev

Python 中递归函数的返回值

来自分类Dev

Python:运行将值附加到空列表的函数不返回任何值

来自分类Dev

函数不返回任何值 - Python

来自分类Dev

在递归函数中返回中间值是 Python 的怪癖吗?

来自分类Dev

python函数中的返回语句不返回任何内容