关于return和finally的执行顺序

关于return和finally的执行顺序

前段时间的考试涉及到这个题目,做一下记录。

def test_try():
    try:
        print("start")
        # raise KeyError
        return 1
    except KeyError as e:
        print("key error")
        return 2
    # else:
    #     print("other")
    #     return 3
    finally:
        print("finally")
        return 4

result = test_try()
print(result)

执行结果

start
finally
4

但如果把finally中的return语句注释掉,则结果如下:

start
finally
1
如果finally中有return语句, 它返回finally里的return语句,
如果finally没有return语句, 它就会返回前面调用的return语句
posted @ 2021-06-06 08:29  笑着的程序员  阅读(20)  评论(0)    收藏  举报  来源