の代わりに
def do_something(a, b, c): return res_fn( fn(a, b), fn(b), c )
私はそうします:
def do_something(a, b, c): inter_1 = fn(a, b) inter_2 = fn(b) result = res_fn(inter_1, inter_2, c) return result
最初のバージョンははるかに短く、適切にフォーマットされていれば同様に読みやすくなります。
しかし、私が 2 番目のアプローチを好む理由は、すべての中間ステップがローカル変数に保存されるからです。
Sentry などの例外追跡ツール、さらには DEBUG=True が設定されている場合にポップアップ表示される Django のエラー ページでさえ、ローカル コンテキストをキャプチャします。さらに、デバッガーを使用して関数をステップ実行する必要がある場合、関数からステップアウトする前に正確な戻り値を確認できます。これが、最終結果を返す直前にローカル変数に保存する理由です。
いくつかの追加の変数割り当てと数行の追加のコード行によるパフォーマンスのコストは発生しますが、これによりデバッグがはるかに簡単になります。
以上が中間値を関数呼び出しに直接渡すのではなく、常にローカル変数に代入する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。