在提供的Python 程式碼中,名為get_path 的遞歸函數正在嘗試搜尋檔案( rqfile)在巢狀字典(dictionary)中。但是,當找到檔案的路徑並需要返回時,函數將傳回 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)
要解決此問題,函數需要傳回遞歸呼叫的結果。預設情況下,如果沒有明確 return 語句,Python 函數將會傳回 None。若要返回正確的路徑,請將函數的最後一行替換為以下內容:
return get_path(directory[filename], rqfile, path)
此修改可確保函數傳回在遞歸呼叫期間找到的路徑。這是更新後的程式碼:
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: return get_path(directory[filename], rqfile, path)
以上是為什麼我的遞歸 Python 函數在巢狀字典中搜尋檔案時不回傳任何內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!