1. ホーム
  2. python

[解決済み] Pythonのキーワード "with "は何に使うのですか?[重複しています]。

2022-03-16 05:06:58

質問

Pythonのキーワード「"with"」は何に使うのでしょうか?

からの例です。 http://docs.python.org/tutorial/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True

解決方法は?

Pythonでは with キーワードは、アンマネージドリソース(ファイルストリームなど)を扱うときに使用します。これは using 文は、VB.NETやC#で使用されています。これにより、リソースを使用するコードの実行が終了したときに、例外がスローされたとしても、リソースを確実にクリーンアップすることができます。これは try/finally ブロックがあります。

から Python Docs :

with ステートメントを使用すると、従来は try...finally ブロックを使って、クリーンアップコードが実行されるようにします。このセクションでは、一般的に使用されるであろうこのステートメントについて説明します。次のセクションでは、実装の詳細と、このステートメントを使用するためのオブジェクトの書き方を説明します。

with 文は、その基本構造を制御フロー構造とする。

with expression [as variable]:
    with-block

この式が評価され、コンテキスト管理プロトコルをサポートするオブジェクト(すなわち __enter__()__exit__() メソッド) を使用します。

更新情報 Scott Wisniewski氏のコメントにより、VBコールアウトを修正しました。確かに混同していました with とは using .