ホームページ >バックエンド開発 >Python チュートリアル >中間値を関数呼び出しに直接渡すのではなく、常にローカル変数に代入する理由

中間値を関数呼び出しに直接渡すのではなく、常にローカル変数に代入する理由

Linda Hamilton
Linda Hamiltonオリジナル
2024-09-27 06:22:291142ブラウズ

Why I always assign intermediate values to local variables instead of passing them directly to function calls

の代わりに

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

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