我在python中的递归函数在python中不返回任何函数

时间:2015-10-01 23:54:12

标签: python recursion nonetype

def recursiveSearch(rootDir):
    file = 'foundMe'

    # Creates a full path back to the root directory with each item in list
    for p in os.listdir(rootDir):
        path = os.path.join(rootDir, p)
        if os.path.isfile(path):
                if os.path.splitext(os.path.basename(path))[0] == file:
                    print("congrats you found", path)

                    return path

        else:
            if os.path.isdir(path):
                recursiveSearch(path)

x = recursiveSearch(rootDir)
print(x) ->>> None

为什么这个函数返回None类型而不是我找到的文件的路径?

当我运行该函数时,递归工作并能够找到并打印文件的路径,但不返回任何内容。有人可以解释一下原因吗?

1 个答案:

答案 0 :(得分:3)

您没有明确return递归调用的值,因此隐式地该函数会在None分支中返回else。相反,使用:

...

else:
    if os.path.isdir(path):
        return recursiveSearch(path)