python 中 try,except,finally 的執行順序


寫代碼的時候發現了好玩的事情,常常作為終止的 return 語句並不總是能夠立刻跳出函數

def A():
    try:
        for i in range(10):
            if i == 5:
                return
            print(i)
    except:
        pass
    finally:
        print("hahaha")

這段代碼得到的運行結果是

0
1
2
3
4
hahaha

對於另外一段代碼

def B():
    try:
        for i in range(10):
            if i == 5:
                return i
            print(i)
    except:
        pass
    finally:
        i = 10
        print("hahaha")

函數的返回值仍然是 5,並沒有改為 10
而當 try 或 except 和 finally 中同時出現 return 的時候,返回值是 finally 中的值

def C():
    try:
        return 5
    except:
        return 6
    finally:
        return 10

得到的結果為 10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM