python:try语句中有return, finally还会执行吗

514 阅读1分钟

参考网址

blog.csdn.net/qq_39863093…

前言

大意就是如果在tryreturn的情况下,先把try中将要return的值先存到一个本地变量中,
即本例中的x=2将会被保存下来。
接下来去执行finally语句,最后返回的是存在本地变量中的值,即返回x=2.

Notes:还有一点要注意的,如果你在finally里也用了return语句,比如return ++x。
那么程序返回值会是3。
因为规范规定了,当tryfinally里都有return时,会忽略tryreturn,而使用finallyreturn

结论

try语句中有return的时候,其与finally语句的执行情况。我们的得到的结论有:

1.  try中有returnfinally一定会执行。
1.  try中有return, 会先将值暂存,无论finally语句中对该值做什么处理,最终返回的都是try语句中的暂存值。
1.tryfinally语句中均有return语句,会忽略tryreturn,最后返回的是finally中的return