PythonのWith...as文
1634 ワード
一、文法・・・1 .
二、例テキスト テキストの内容を読み取り、行ごとに印刷する.
三、原理 with文は実質的にコンテキスト管理 である.コンテキスト管理プロトコル: は、このプロトコルをサポートするオブジェクトであり、with文によって操作されるには、この2つの方法を実装する必要があります. コンテキストマネージャ with文の実行時に確立された実行時コンテキストを定義し、with文コンテキストのアクセスと終了操作を実行する. コンテキストマネージャに入る:マネージャ コンテキストマネージャを終了:マネージャを呼び出す
四、シーンの適用ファイルアクション プロセススレッド間の反発オブジェクト、例えば反発ロック カスタムサポートコンテキストの他のアクション
with context as var:
with_suite
with
:tryの代わりに...except...finally文は、コードをより簡潔にします.context
:通常は式で、オブジェクトを返します.var
:contextが返すオブジェクトを保存するために使用され、単一の値またはメタグループであってもよい.with_suite
:変数varを用いてcontext戻りオブジェクトを各種操作するコードセグメント二、例
#
XZ:learn xz$ cat with.txt
with...as...
12345
abcde
In [2]: with open('with.txt','r+') as f:
...: for line in f.readlines():
...: print(line)
...: print('with is closed : ', f.closed)
...:
...:
with...as...
12345
abcde
with is closed : True
with.txt
f
を開く変数は、ファイルオブジェクトが返すオブジェクトを受信する.with
のコードの実行が完了すると、自動的にファイルが閉じます.with
文にtry...except
異常処理がされていない場合、エラーが発生した場合、Python解釈器に直接異常を渡して投げ出し、自動的にファイルを閉じることはなく、try...except
異常処理をした場合、異常が発生した場合、自動的にファイルを閉じてから異常を投げ出す. 三、原理
__enter__
と__exit__
の2つの方法を含む.__enter__
メソッドを呼び出し、as var
文が設定されている場合、変数varは__enter__
メソッドの戻り値を受け入れる.__exit__
メソッド. 四、シーンの適用