Python >> Tutorial de Python >  >> Python

Comprender el valor de retorno de Python en Python Try, Except y finalmente para principiantes – Tutorial de Python

Si ha utilizado python declaración de devolución en python try, excepto y finalmente, puede confundirse para entender. En este tutorial, explicaremos el valor devuelto en python try, excepto y finalmente.

Para entender la declaración de retorno de Python , puede consultar este tutorial.

Sin embargo, mira este ejemplo.

def getExceptionReturn():
    try:
        print('run try statement')
        x = 1 / 0
        return 1
    except Exception as e:
        print("run except statement")
        print(e)
        return 0
    finally:
        print('run finally statement')
        return 2
    
x = getExceptionReturn()
print(x)

Cuál es el valor de retorno de getExceptionReturn() función?

1. 1/0 generará una excepción.

2. declaración de excepción se ejecutará, devolverá 0 .

3. finalmente declaración se ejecutará, devolverá 2 .

Así que el valor de retorno de getExceptionReturn() la función es 0 o 2 ?

El resultado de la ejecución es:

run try statement
run except statement
division by zero
run finally statement
2

El valor de retorno es 2 , lo que significa el valor devuelto en excepto declaración se reemplaza por el valor de retorno en declaración finalmente .

Mira este ejemplo.

def getExceptionReturn():
    try:
        print('run try statement')
        x = 1 / 1
        return 1
    except Exception as e:
        print("run except statement")
        print(e)
        return 0
    finally:
        print('run finally statement')
        return 2
    
x = getExceptionReturn()
print(x)

El valor de retorno de getExceptionReturn() la función es 1 o 2 ?

El resultado de la ejecución es:

run try statement
run finally statement
2

El valor de retorno es 2 , lo que significa valor devuelto en instrucción de prueba se reemplaza por el valor de retorno en declaración finalmente .

Sin embargo, si no usamos  instrucción final , el valor de retorno es muy fácil de entender.

Si no hay valor devuelto en finally declaración ?

Aquí hay un ejemplo.

def getExceptionReturn():
    try:
        print('run try statement')
        x = 1 / 1
        return 1
    except Exception as e:
        print("run except statement")
        print(e)
        return 0
    finally:
        print('run finally statement')
    
x = getExceptionReturn()
print(x)

En este ejemplo, no hay ningún valor de retorno en la declaración final, por lo que el valor de retorno de getExceptionReturn() debe ser 1 .

El resultado de la ejecución es:

run try statement
run finally statement
1