オブジェクトの同一性と同値性、例外処理

オブジェクトの同一と同値を判定するには以下のようにする。

>>> a = ('a', 1)
>>> b = ('a', 1)
>>> a == b  # 同値性のチェック
True
>>> a is b  # 同一性のチェック
False

例外には文字列例外とクラス例外の2つがあるが、発生した例外と、exceptブロックに指定した例外のマッチングは以下のように行われる。

  • 文字列例外

 同一性により比較される。

  • クラス例外

 両方がクラスの同じ階層に属するかにより比較される。つまり、発生した例外がexceptブロックに指定した例外と同じクラスのインスタンスかサブクラスのインスタンスであればマッチする。