zoukankan      html  css  js  c++  java
  • 异常处理中try,else,finally含有return的情况解析

    直接看代码,拿到你的py下运行测试一下就 明白了.

    例一:
        def f():
            try:
                print(1)
                return 3
            finally:
                print(2)
                return 0
        print(f())    #120   若注释掉finally内的return  结果为123
        #解释-----一个函数只会有一个返回值,若try和finally同时存在的话,finally会覆盖掉try的return并执行,所以函数结束了.
    例二:
        def f():
            try:
                print(1)
                return 1
            except:
                return(2)
            else:
                print(3)
                return 3
            finally:
                print(0)
                return 0
        print(f())
        #总结:如果try下有return的话,若有finally的话,执行finally下的内容,finally内若有return会覆盖操作try下的return;
        若try下没有return,函数正常执行,但是return检测是倒着执行的.
        在含有return的情况下,并不会阻碍finally的执行。
  • 相关阅读:
    stl_heap
    关于随机数 C++
    关于if语句的细节
    C++关于智能指针
    sqlyog
    win10 64位 汇编环境
    Qt 乱码
    Vux使用经验
    Flex布局新旧混合写法详解
    【原】npm 常用命令详解
  • 原文地址:https://www.cnblogs.com/dalaoban/p/9481020.html
Copyright © 2011-2022 走看看