Đây là một số mã hoạt động đặc biệt. Đây là một phiên bản đơn giản của hành vi mà tôi đã viết. Điều này vẫn sẽ chứng minh hành vi kỳ lạ và tôi đã có một số câu hỏi cụ thể về lý do tại sao điều này xảy ra.Hành vi lạ-ngoại trừ-khác-Cuối cùng với báo cáo Trả lại
Tôi đang sử dụng Python 2.6.6 trên 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
if __name__ == "__main__":
print "*** DEMO ONE ***"
print demo1()
print "****************"
print
print "*** DEMO TWO ***"
print demo2()
print "****************"
Khi bạn chạy kịch bản này, nó sẽ in:
*** DEMO ONE ***
3
****************
*** DEMO TWO ***
6
3
****************
Tại sao bản demo một trở về 3 thay vì 1? Tại sao bản trình diễn hai in 6 thay vì in 6 w/4 hoặc 5?
Cảm ơn sự giúp đỡ của bạn.
tại sao không in 5 trong ví dụ thứ hai? điều này vẫn chưa được giải thích rõ ràng. trả lại một trong những cũng được trả lời nhưng tại sao doesnt 5 trong ví dụ thứ hai in –
oh tôi nghĩ rằng tôi figured nó ra sự trở lại trong thử ban đầu gây ra nó nhảy ngay lập tức để bên ngoài cuối cùng –
Chính xác, vì 'cuối cùng' khối ** luôn luôn ** chạy. –