2016 - 2024

感恩一路有你

finally和return哪个先执行 python的try方法中的else和finally的区别?

浏览量:2900 时间:2021-03-16 14:35:08 作者:admin

python的try方法中的else和finally的区别?

如下所示:(R

输出:(R)在try中引发一个异常,它将在exception中立即执行。当在异常中遇到return时,将强制在finally中执行。在finally中遇到return时,会返回输出:try中没有抛出异常,因此不会在exception中执行,但是在try中遇到return时,会立即强制在finally中执行,并在finally中返回test1和test2的结果,无论是在try中还是except中,当遇到return时,只要设置了finally语句,当前return语句就会被中断,执行就会跳到finally。如果在finally中遇到return语句,则直接返回,而不是跳回try/excpet中中断的return语句;当在except和try中遇到return时,return的值将被锁定,然后跳转到finally。如果finally中没有return语句,则finally执行后返回原来的返回点,并返回之前锁定的值(即finally中的动作不影响返回值)。如果finally中有return语句,那么finally中的return语句将被执行。R输出test5的结论:在一个循环中,在跳出循环之前,它将首先转到finally execute,然后开始下一轮循环。没关系。直接总结规则。

根据上述规则,让我们看看下面的列表

输出是40。有两个retrun,下面的一个将覆盖上面的一个,所以它将是40

输出是30。最后,没有回报。虽然a=40,但return是在之前执行的。当前方法体的返回类型的空间已经在堆栈中打开了30个(值的副本)。因此,由a=40操作的变量a不影响存储在新控制回路中的30。

输出为1。StringBuilder是引用类型。Return将复制引用地址。因此操作生成将影响返回的结果。

希望以上内容能对您有所帮助。

finally和return哪个先执行 finally return执行顺序 return后finally会不会执行

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。