ホームページ  >  記事  >  バックエンド開発  >  再帰的な Python 関数が何も返さないのはなぜですか?

再帰的な Python 関数が何も返さないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-12 14:28:02743ブラウズ

Why Does My Recursive Python Function Return None?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。