バージョン 2.5 で 新たに追加 された仕様です。
コンテキストマネージャとは、 with文の実行時にランタイムコンテキストを定義する オブジェクトです。 コンテキストマネージャは、 コードブロックを実行するために必要な入り口および出口の処理を扱います。 コンテキストマネージャは通常、 with文(7.5の章を参照)により起動されますが、 これらのメソッドを直接呼び出すことで起動することもできます。
コンテキストマネージャの代表的な使い方としては、 様々なグローバル情報の保存および更新、リソースのロックとアンロック、 ファイルのオープンとクローズなどが挙げられます。
コンテキストマネージャのより詳細な情報は、 Python Library Reference にある ``Context Types'' を参照してください。
self) |
self, exc_type, exc_value, traceback) |
もし、例外が送出され、かつメソッドが例外を抑制したい場合 (すなわち、例外が伝播されるのを防ぎたい場合)、 このメソッドは True を返す必要があります。 そうでなければ、このメソッドの終了後、 例外は通常通り伝播することになります。
__exit__()メソッドは受け取った例外を再度 送出すべきではありません。 これは、呼び出し側の責任でおこなってください。
参考: