您的位置:首页 > 编程语言 > Python开发

Python中的try, finally, return

2013-04-22 17:10 344 查看
先来一段代码:
def f():
try:
return "123"
finally:
return "321"
print(f())

执行结果会是什么呢?答案是:

prints:

321

可以看到如果在finally中使用return语句,则会屏蔽其他所有地方的return语句,始终被执行。

再来一段:

def f():
try:
return "123"
finally:
print("321")
print(f())
prints:

321

123

在try执行完后,会保存将要返回的信息,然后执行finally,最后再返回。

再来一段:

def f():
a = 1
try:
return a+1
finally:
a = a+2
print(f())


prints:

2

说明finally中不会对局部变量的值行进改变,或者说对将要返回的局部变量的值不会改变。

总结:finally在return前执行,在finally的操作,不会改变已经确定的return的值, finally不能加return语句。出现异常,先找是否有处理器可以处理这个异常有处理器可以处理这个异常,再finally。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: