。これは、VB.NETとC#のusing
文に似ています。例外がスローされた場合でも、リソースを使用するコードが実行を終了すると、リソースが "クリーンアップ"されるようにすることができます。それはtry/finally
ブロックのための '構文的な砂糖'を提供します。
Python Docsから:
with
文では、以前にクリーンアップコードが実行されることを保証するためにtry...finally
ブロックを使用するコードを明確にしています。このセクションでは、一般的に使われるステートメントについて説明します。次のセクションでは、実装の詳細を調べ、このステートメントで使用するオブジェクトを記述する方法を示します。
with
文は基本的な構成である制御フロー構造である:
with expression [as variable]:
with-block
式が評価され、それはコンテキスト管理プロトコルをサポートしているオブジェクトをもたらすはずである(すなわち、__enter__()
とを有しています__exit__()
方法)。
更新 Scott WisniewskiのコメントごとにVBコールアウトが固定されています。私は実際にwith
とusing
を混同していました。
これは役に立つかもしれません:http://effbot.org/zone/python-with-statement.htm – Domenic