これは、奇妙な動作をしているコードです。これは、私が書いた動作の単純化されたバージョンです。これはまだ奇妙な動作を示しており、なぜこれが発生しているのかについて具体的な質問がありました.
Windows 7 で Python 2.6.6 を使用しています。
def demo1():
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
def demo2():
try:
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
except:
print 4
else:
print 5
finally:
print 6
結果:
>>> print demo1()
3
>>> print demo2()
6
3
- デモ 1 が 1 ではなく 3 を返すのはなぜですか?
- なぜデモ 2 は 6 と 4 または 5 を印刷するのではなく 6 と印刷するのですか?