Python で再帰関数が何も返さない: 問題への対処
Python で再帰関数を使用する場合、特定のシナリオでは、次のような状況が発生する可能性があります。ここで、関数は目的の値の代わりに None を返します。この問題は通常、関数が特定のパスを返すことを目的としているが、実際に取得される結果が None である場合に発生します。
この問題の考えられる原因の 1 つは、再帰呼び出し後の return ステートメントの省略です。これを解決するには、関数は再帰呼び出しの結果を明示的に返す必要があります。 return ステートメントを含めるようにコードを変更すると、関数が必要なパスを返すようになります。
else: return get_path(directory[filename], rqfile, path)
さらに、関数の結果に関係なく、関数の最後に一貫して return ステートメントを含めることをお勧めします。再帰呼び出し。これにより、関数が常に値を返すようになり、誤って 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)) return get_path(directory[filename], rqfile, path)
これらの提案された調整を実装することで、再帰関数は None ではなく意図したパスを返し、問題が解決されます。
に遭遇しました。以上が再帰的な Python 関数が何も返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。