ホームページ >バックエンド開発 >Python チュートリアル >Python は末尾再帰を最適化しますか? 最適化しない場合、その理由は何ですか?
Python は末尾再帰を最適化しますか?
作成者である Guido van Rossum が明示的に述べているように、Python は末尾再帰を最適化しません。 Rossum は、末尾再帰の最適化の可能性よりも適切なトレースバックを優先します。
Python が末尾再帰を最適化しない理由
Rossum は、正確なトレースバックを生成する機能を維持することがより重要であると考えています。末尾再帰を最適化するよりも。トレースバックは、コードの実行方法をデバッグして理解するために不可欠です。
手動末尾再帰除去
Python には末尾再帰の最適化がないにもかかわらず、変換を使用して手動で再帰を除去できます。 。再帰関数を while ループに変換し、末尾再帰を使用する代わりにループ内のパラメーターを更新します。
例: 末尾再帰の削除
def trisum(n, csum): while True: # Change recursion to a while loop if n == 0: return csum n, csum = n - 1, csum + n # Update parameters instead of tail recursion
以上がPython は末尾再帰を最適化しますか? 最適化しない場合、その理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。