contextmanagerもyeildも使い所をよく忘れるのでメモ。
例えばある処理の開始と終了をログに出したい場合、呼び出し対象の関数にいちいち記載するのは面倒である。
“`
@contextmanager
def log_time(name=””):
logger.info(f”{name} Start”)
yield None
logger.info(f”{name} Done”)
# 使用例
with log_time(‘exec xxxx’):
exec()
“`
こんなutility関数をサクッと作れるようになりたい。
The following two tabs change content below.