Python での構造体「try」と「if」のどちらを選択する
変数に値があるかどうかをテストする場合、「try」のどちらかを選択するまたは「if」構文は議論の対象となる可能性があります。それぞれのアプローチの使用の背後にある理論的根拠を詳しく見てみましょう。
EAFP (許可よりも許しを求めるのが簡単) vs. LBYL (Look Before You Leap)
Python は EAFP を推奨LBYL以上。 EAFP では、操作を試行し、例外が発生した場合はそれをキャッチします。一方、LBYL では、操作を試行する前に事前に条件を確認します。
効率と可読性に関する考慮事項
効率の側面は、予想される例外の頻度によって異なります。例外がまれな場合は、try/excel ブロックのオーバーヘッドが if ステートメントの速度によって打ち消される可能性があります。ただし、例外がより頻繁に発生する場合は、if ステートメントの条件チェックのオーバーヘッドを回避できるため、try/excel の方が高速になる可能性があります。
例
次のコードを考えてみましょう。関数がリストを返すかどうかをチェックします:
result = function() if result: for r in result: # Process items
result = function() try: for r in result: # Process items except TypeError: pass
If 'result' がほとんどの場合、try/Except アプローチの方が効率的です。ただし、'result' が None であることが多い場合は、if ステートメントを使用することをお勧めします。
時間の測定
時間の測定は、例外が本当に例外的な場合には try/excel の方が高速であることを示しています。 、一方、条件が一般的である場合、if ステートメントは高速になります。
結論
'try' と 'if' の決定は以下によって決まります:
一般に、EAFP (try/excel) は、特に例外がまれな場合には、より「Python 的」なアプローチになる可能性があります。ただし、例外がよくある場合は、LBYL (if ステートメント) の方が適している可能性があります。
以上がPython で「try」を使用する必要がある場合と「if」を使用する必要がある場合は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。