with文で使えるコンテキストマネージャー型を作成する

openの時のようにwith文を使えるようにするには、contextlibモジュールのcontextmanagerデコレータを使えば簡単に実装できます。

openの時の例

with open('hoge.txt') as f:
    f.read()
# withブロックを抜けるとファイルclose

contextmanagerを使用した例

from contextlib import contextmanager
@contextmanager
def myfunc():
    print('前処理')
    yiled  #ここで処理が中断
    print('後処理')

# with文で使ってみる。
with myfunc():
    print(1+2)

# 前処理
# 3
# 後処理
関連記事:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)