如果try语句块中有return语句,此try后的finally语句块中的代码能否得到执行?如果被执行,是在return语句之前还是之后?
时间: 2024-02-20 21:59:11 浏览: 66
关于Java中try finally return语句的执行顺序浅析
5星 · 资源好评率100%
如果try语句块中有return语句,finally语句块中的代码仍然能够得到执行。不过,finally中的代码会在return语句执行之前执行。
具体来说,当try语句块中出现return语句时,Python会先执行finally语句块中的代码,然后再执行return语句。这意味着,如果在finally语句块中修改返回值,那么修改后的值会被返回,而不是原始的返回值。
下面是一个示例代码,可以帮助你更好地理解这个过程:
```python
def test():
try:
print("try block")
return 1
finally:
print("finally block")
return 2
result = test()
print(result)
```
运行上述代码,输出如下:
```
try block
finally block
2
```
可以看到,在try语句块中,我们打印了一条消息并返回了1。但是,在finally语句块中,我们又打印了一条消息并且返回了2。因此,最终的返回值是2,而不是1。
阅读全文