Python에서 재귀적으로 경로 반환
Python에서는 재귀 함수에서 경로를 반환하려고 할 때 문제가 발생했습니다. 대신 결과에서 None을 얻습니다.
제공된 코드는 파일 시스템 구조를 나타내는 사전을 탐색하여 rqfile에 지정된 파일을 검색합니다. 파일이 발견되면 해당 경로를 반환해야 합니다.
문제의 근본 원인은 사전을 통해 반복하는 동안 함수가 사전이 아닌 값을 발견할 때 else 분기에서 None을 반환하려고 시도한다는 것입니다. 이로 인해 함수가 조기에 종료되어 None이 반환됩니다.
이를 수정하려면 재귀 호출의 결과를 일관되게 반환해야 합니다.
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: # Remove unnecessary else block return get_path(directory[filename], rqfile, path)
이 코드는 함수가 반환되도록 보장합니다. 발견된 경우 경로, 현재 경로가 찾고 있는 경로가 아닌 경우 재귀 호출의 결과입니다. 또는 rqfile이 현재 경로에 없는 극단적인 경우를 처리할 수도 있습니다.
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 None return get_path(directory[filename], rqfile, path)
이러한 해결 방법 중 하나를 구현하면 함수가 요청된 파일의 경로를 올바르게 반환하거나 파일이 있는 경우 None을 반환합니다. 찾을 수 없습니다.
위 내용은 경로를 찾으려고 할 때 재귀 Python 함수가 없음을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!