นี่คือรหัสบางส่วนที่ทำงานผิดปกติ นี่เป็นเวอร์ชันที่เรียบง่ายของพฤติกรรมที่ฉันเขียน สิ่งนี้จะยังคงแสดงให้เห็นถึงพฤติกรรมแปลก ๆ และฉันมีคำถามเฉพาะบางอย่างเกี่ยวกับสาเหตุที่เกิดขึ้น
ฉันใช้ Python 2.6.6 บน Windows 7
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
- เหตุใดการสาธิตจึงส่งคืน 3 แทนที่จะเป็น 1
- เหตุใดการสาธิตสองการพิมพ์ 6 แทนที่จะเป็นการพิมพ์ 6 w / 4 หรือ 5