1
コンテキストマネージャーでいくつかのtry/except複雑さを隠そうとしています。ここでは簡単な例です:コンテキストマネージャーで2回の歩留まりを使用する
from contextlib import contextmanager
import mpd
mpdclient = mpd.MPDClient()
mpdclient.connect("localhost", 6600)
@contextmanager
def mpdcontext():
try:
yield
except mpd.ConnectionError:
mpdclient.connect("localhost", 6600)
with mpdcontext():
mpdclient.status()
with mpdcontext():
mpdclient.lsinfo()
私は理解されるように歩留まりが呼び出されたときに今、ステートメントを使用して、ブロックが実行されます。私の場合、例外が発生すると、mpdに再接続します。この再接続の後、私は何とかwith-blockを何とか実行できますか?
ありがとうございました