python try.except.finallyでのreturn問題
546 ワード
次のコードを見てください.出力は何ですか.
A. except
B. except finally
C. except finally done
では、答えはいったい何なのでしょうか.
正解:C
君の答えは正しいか分からない.
わかる
pythonのtry.except.finallyのreturnはあなたが考えているほどではないかもしれません.finallyブロックは必ず実行されるからです.
まとめ
tryとexceptでreturn文で設定された戻り値はfinallyブロックで変更できます.returnは慎重に使用してください.
def test1():
try:
x = 2/0
except:
print('except')
return
finally:
print('finally')
print('done')
return
test1()
A. except
B. except finally
C. except finally done
では、答えはいったい何なのでしょうか.
正解:C
君の答えは正しいか分からない.
わかる
pythonのtry.except.finallyのreturnはあなたが考えているほどではないかもしれません.finallyブロックは必ず実行されるからです.
まとめ
tryとexceptでreturn文で設定された戻り値はfinallyブロックで変更できます.returnは慎重に使用してください.