変数に値があるかどうかを判断するとき、プログラマーは、try/excel を使用するか if を使用するかの選択に直面することがよくあります。 /else を構築します。この記事では、EAFP (許可よりも許しを求める方が簡単です) の原則に基づいて、各アプローチの背後にある理論的根拠を説明します。
EAFP と Try/Except
EAFP は潜在的なエラーを予測し、try/excel ブロックでそれらを処理するコーディング スタイル。このアプローチでは、有効な値が存在することを前提として、通常どおりに動作しようとします。例外が発生した場合は、例外が捕捉され、それに応じて処理されます。この方法は、例外が頻繁に発生しない場合に効率的です。
LBYL および If/Else
対照的に、LBYL (Look Before You Leap) では、操作を実行する前に条件をチェックします。 if/else ブロックを使用して、続行する前に変数に値があるかどうかを検証します。このアプローチは潜在的なエラーを防止しますが、変数に値がある可能性が高い状況ではオーバーヘッドが生じます。
効率の比較
経験的測定により、if/else が示されています。ブロックには、エラーが発生するかどうかに関係なく、一定のコストがかかります。一方、try/excel ブロックのセットアップ コストは低いですが、例外が発生するとコストが大幅に高くなる可能性があります。したがって、適切なアプローチの選択は、例外が発生する可能性によって異なります。
例外がまれである (50% 未満) と予想される場合は、効率性を考慮して try/Except を使用することをお勧めします。例外がより頻繁に発生する場合は、不必要なパフォーマンスへの影響を避けるために if/else を使用することをお勧めします。
結論
変数に try/exc を使用するか、if/else を使用するか評価は、予想される例外の頻度によって異なります。例外が例外的な場合は、EAFP と try/excel を使用すると、より高速で簡潔なソリューションが提供されます。ただし、より頻繁な例外の場合は、LBYL と if/else の方がパフォーマンスが向上し、明示的なエラー処理が可能です。
以上がPython の Try と If: 変数の評価にそれぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。