python中try里有return时,finally还执行不执行

写一个函数,在try里返回,最后在finnaly里打印语句,代码如下

def fun1():
    x = 1
    try:
        print(‘执行try‘)
        x = x + 1
        # x = x / 0  # 执行次语句时,finally执行时,x的值依然是4
        return print(‘执行try的return‘, x)
    except:     
        print(‘异常‘)
        return x
    finally:
        x += 1
        x += 1
        print(‘finally执行:‘, x)

执行结果如下图所示:

由此可以看出,函数的执行顺序就是按照 try - except - finally的顺序执行,

也就是说,finally语句块总是会被执行的,并且如果finally里的x的值会继承try语句块里的x的值

原文地址:https://www.cnblogs.com/chongzi1990/p/12120500.html

时间: 2024-10-10 23:25:31

python中try里有return时,finally还执行不执行的相关文章

python中itertools里的product和permutation

python中itertools里的product和permutation 平时经常碰到全排列或者在n个数组中每个数组选一个值组成的所有序列等等问题,可以用permutation和product解决,很方便,所以在此mark一下吧 直接上代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

python中生成器对象和return 还有循环的区别

python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因为return后面就不能跟任何东西,意味着函数的结束.那么我们完全可以这么做: def main(): for i in range(1,100): yield i 这样就等于生成了一个循环返回对象,特别在爬虫scrapy中较为常见!yeild和return还有for 上本质有什么区别呢?其实很简单

try catch finally,try里有return,finally还执行么?

1.不管有木有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的:4.finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值.

Java在try中return后finally还执不执行?

Java方法中,在try中return之后,后面的finally还执行吗? 测试代码如下: public int print(){ try { System.out.println("try"); return 1; } catch(Exception e){ return 0; } finally{ System.out.println("finally"); } } 直接看结果: try finally 原因: finally语句在return之前执行. 如果在

Python中正则匹配使用findall时的注意事项

在使用正则搜索内容时遇到一个小坑,百度搜了一下,遇到这个坑的还不少,特此记录一下. 比如说有一个字符串  "[email protected]@[email protected]@asdfcom" 想匹配出里面所有的邮箱地址,该怎么实现呢? 写了个正则,测试一下: >>> import re >>> s = "[email protected]@[email protected]@asdfcom" >>> pat

Python中Class里的__contains__(self,x)函数解析

网上搜了一些文章,有点绕. 在Class里添加__contains__(self,x)函数可以在类的实例化对象上进行 in 操作. 如下代码 class Graph(): def __init__(self): self.items = {'a':1,'b':2,'c':3} def __str__(self): return '打印我干嘛' def __contains__(self,x): # 判断一个定点是否包含在里面 return x in self.items a = Graph()

python中,使用matplotlib绘图时,图片上文字无法显示问题。

在使用python过程中,我们往往需要使用matplotlib进行图片的绘制,在绘图过程中,我们有时需要在图片上进行文字的显示,在使用过程中,会出现文字无法显示的问题.如下图: 遇到上述问题我们只需在代码中加入如下语句即可解决: from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei']如下图: 原文地址:https://www.cnblogs.com/Leo-Xia/p/9997408.html

关于Java里try/catch/finally/有return时执行过程

Java代码: public class Test1 {  public static void main(String[] args) {    int a=method1();    System.out.println("result----a="+a);} public static int method1(){  int a=0;  try {    a=1;    System.out.println("try----a="+a);    return

在python中使用mysql

缘由 最近在折腾一个小东西需要抓取网上的页面,然后进行解析,将结果放到数据库中.了解到Python在这方面有优势,便选用之.因为我有台服务器上面安装有mysql,自然使用之.在进行数据库的这个操作过程中遇到了不少问题,这里记录一下,大家共勉. python中mysql的调用 百度之后可以通过MySQLdb进行数据库操作,查看文档,了解到python中提供了一个mysql时直接实现了mysql的c语言API.MySQLdb是对其在更高一层的封装,因此,使用起来更加方便.我们可以使用mysql,但更