Pythonのhasattr()は遅い?
石本さん
(この関数は、 getattr(object, name) を呼び出して AttributeError を送出するかどうかを見ることで実装されています。)
例外の送出は遅い
例外処理というのは比較的重たい処理で、例外の発生を検出したら実行情報を保存し、適切な except ブロックに移動して処理を継続できるようにしなければなりません。
実は例外を発生されるのはそんなに時間がかかりません。Pythonインタープリタが発生した例外を検出し、例外情報を作成したりする処理は時間がかかりますが、発生させるだけならほとんど時間はかからないのです。