关于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语句

你可能感兴趣的:(python,笔记,python)