Salir de una función en Python

  1. Tipo de retorno implícito en Python
  2. Tipo de retorno explícito en Python

Cada programa tiene algún flujo de ejecución. Un flujo no es más que cómo se ejecuta el programa. La declaración return se usa para salir de la función de Python, que se puede usar en muchos casos diferentes dentro del programa. Pero las dos formas más comunes en las que usamos esta declaración se encuentran a continuación.

  1. Cuando queremos devolver un valor de una función después de que ha salido o se ha ejecutado. Y usaremos el valor más adelante en el programa.
def add(a, b):
   return a+b

value = add(1,2)
print(value)

Producción:

3

Aquí, devuelve el valor calculado por a+b y luego almacena ese valor que es 3, dentro de la variable value.

  1. Cuando queremos detener la ejecución de la función en un momento dado.
def add(a, b):
    
    if(a == 0):
        return
    elif(b == 0):
        return
    else:
        sum = a + b
        return sum

value = add(0,2)
print(value)

Producción:

None

Aquí, si los valores de a o b son 0, volverá directamente sin calcular la suma de los números. Si no son 0, solo calculará y devolverá la sum.

Ahora, si implementa esta declaración en su programa, entonces, dependiendo de dónde haya agregado esta declaración en su programa, la ejecución del programa cambiará. Vamos a ver cómo funciona.

Tipo de retorno implícito en Python

Supongamos que tenemos una función dentro de la cual hemos escrito usando una declaración if, entonces veamos cómo se comporta el programa.

def solution():
    name = "john"
    
    if(name == "john"):
        print('My name ',name)

solution()

Producción:

My name john

La función solution() no acepta argumentos. Dentro de él, tenemos una variable llamada name y luego verificamos que su valor coincida con la cadena john usando la declaración if. Si coincide, imprimimos el valor de la variable name y luego salimos de la función; de lo contrario, si la cadena no coincide, simplemente saldremos de ella sin hacer nada.

Aquí, podría pensar que dado que no hay una declaración return escrita en el código, no hay una declaración return presente. Tenga en cuenta que no es obligatorio escribir la declaración de devolución. Siempre que sale de cualquier función de Python, llama a return con el valor de None solo si no ha especificado la declaración return. El valor None significa que la función ha completado su ejecución y no devuelve nada. Si ha especificado la instrucción return sin ningún parámetro, también es lo mismo que return None. Si no especifica ningún tipo de retorno dentro de una función, entonces esa función llamará a una declaración return. Se llama un tipo de retorno implícito en Python.

Tipo de retorno explícito en Python

Siempre que agregue una declaración return explícitamente por usted mismo dentro del código, el tipo de retorno se denomina tipo de retorno explícito. Hay muchas ventajas de tener un tipo de retorno explícito, como que puede pasar un valor calculado por una función y almacenarlo dentro de una variable para su uso posterior o detener la ejecución de la función en función de algunas condiciones con la ayuda de una declaración return etcétera. Veamos un ejemplo del tipo explícito en Python.

def Fibonacci(n):
    
    if n < 0:
        print("Fibo of negative num does not exist")
    elif n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)

print(Fibonacci(0))

Producción:

0

Este es un programa para encontrar números de Fibonacci. Observe cómo se devuelve el código con la ayuda de una declaración explícita return. Aquí, lo principal a tener en cuenta es que devolveremos directamente algún valor si el número pasado a esta función es 2 o menor que 2 y saldremos de la función ignorando el código escrito debajo. Solo ejecutaremos nuestro código principal (presente dentro del bloque else) solo cuando el valor pasado a esta función sea mayor que 2.

Artículo relacionado - Python Function

  • Funciones anidadas en Python
  • La función de devolución de llamada en Python