busy = 0
とprint busy
が2回存在する必要がないようにコードフローを簡略化する方法はありますか?初心者のための単純化を試してみる
busy = 1
try:
print 1/0
busy = 0
print busy
except:
busy = 0
print busy
raise
busy = 0
とprint busy
が2回存在する必要がないようにコードフローを簡略化する方法はありますか?初心者のための単純化を試してみる
busy = 1
try:
print 1/0
busy = 0
print busy
except:
busy = 0
print busy
raise
あなたはfinally
句でそれを置くことができます。
try:
print 1/0
except:
raise
finally:
busy = 0
print busy
しかし@Ryanコメントに言及して、今、あなたはexcept:
句で、コードの無駄なビットを持っています。だから、あなただけ行うことができます。
try:
print 1/0
finally:
busy = 0
print busy
さて、あなただけの、finally
ブロックでtry-catchブロックの後にこのような何か共通のコードを置くことができます:あなたは関係なくtry-catch
のbusy = 0
とprint busy
を設定したかったよう
busy = 1
try:
print 1/0
except:
raise
finally :
busy = 0
print busy
は、あなたが最終的に実行されるfinally
内の共通コードをtry-catch
の外側に置くことができます。
詳細はthis documentationを参照してください。
例外がスローされた場合、 'print busy 'になりません。 – Ryan
はい、正しいです。ありがとう。 –
使用finally
句またはexcept
ブロック内の関数を使用します。
busy = 1
def final(busy):
print busy
return busy
try:
print 1/0
except:
busy = final(0) #sets busy to 0
「busy」は、「finally:」を使用することをお勧めしますか? – Ryan