现在的位置: 首页 > 综合 > 正文

Python中的try, finally, return

2017年12月15日 ⁄ 综合 ⁄ 共 459字 ⁄ 字号 评论关闭

先来一段代码:

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。 


抱歉!评论已关闭.