異常處理中try,else,finally含有return的情況解析
阿新 • • 發佈:2018-08-15
直接 若有 函數 pan 到你 異常 fin 運行 但是
直接看代碼,拿到你的py下運行測試一下就 明白了.
例一: def f(): try: print(1) return 3 finally: print(2) return 0 print(f()) #120 若註釋掉finally內的return 結果為123 #解釋-----一個函數只會有一個返回值,若try和finally同時存在的話,finally會覆蓋掉try的return並執行,所以函數結束了.
例二: def f():try: print(1) return 1 except: return(2) else: print(3) return 3 finally: print(0) return 0 print(f()) #總結:如果try下有return的話,若有finally的話,執行finally下的內容,finally內若有return會覆蓋操作try下的return; 若try下沒有return,函數正常執行,但是return檢測是倒著執行的. 在含有return的情況下,並不會阻礙finally的執行。
異常處理中try,else,finally含有return的情況解析