質問: getvalue(key) > 値= mydict [キー] > > ``` > *「例外をキャッチするのは高価です」*の部分についてちょっと驚きました。これは実際に例外を変数に保存する場合、または一般的にすべての `except` (上記の例を含む)の場合を除いて、これらの `except` 私は常に、このようなイディオムを使用することは、特にPython *"許しを得るのが許諾を得るのが簡単です"* のように非常に非常態であると思っていました。 SOに関する多くの答えも、一般にこの考え方に従います。 例外をキャッチするためのパフォーマンスは本当に悪いですか?このような場合、LBYL(「飛び越す前に見てください」)に従うべきでしょうか? *(私はFAQの例について直接言及しているわけではありませんが、これまでに型を調べる代わりに例外を調べる例がたくさんあります)。*
回答: コストは実装に依存しますが、明らかに心配しません。とにかく問題になることはまずありません。標準的なプロトコルでは、最も奇妙な場所(例外的に `StopIteration` )で例外が発生するため、気に入っているかどうかにかかわらず、 LBYLとEAFPのどちらかを選択するときは、マイクロ最適化に焦点を当てるのではなく、コードの可読性を心配してください。可能であれば、コードの一般性を低下させる可能性があるので、型チェックを避けたいと思います。