python中try里有return时,finally还执行不执行
写一个函数,在try里返回,最后在finnaly里打印语句,代码如下
def fun1(): x = 1 try: print('执行try') x = x + 1 # x = x / 0 # 执行次语句时,finally执行时,x的值依然是4 return print('执行try的return', x) except:
print('异常') return x finally: x += 1 x += 1 print('finally执行:', x)
执行结果如下图所示:
由此可以看出,函数的执行顺序就是按照 try - except - finally的顺序执行,
也就是说,finally语句块总是会被执行的,并且如果finally里有 try语句块里的变量
那么,该变量会继承try语句块里的值