在编写高质量代码-改善python程序的91个建议中有一个关于try-finally的一个问题如下:
def ReturnTest(a):
try:
if a <= 0:
raise ValueError('data can not be negative')
else:
return a
except ValueError as e:
print(e)
finally:
print('the end')
return -1
ReturnTest(0)
ReturnTest(2)
给入参数为0时,输出结果可以解释通,输入参数为2时,就想不通了,书中解释说是在执行return a
之前会先执行finally
代码块,这是为何?
MMTTMM
当年话下
森林海
相关分类