Return en Python

return en python

La declaración simple return en Python se utiliza para devolver elementos desde una función. No se puede utilizar en otros ámbitos.

Qué es una función en Python

Antes de comenzar conviene recordar que es una función en Python. Al igual que la mayoría de lenguajes de programación nuestro código lo podemos estructurar en fragmentos que luego llamaremos en determinados puntos de nuestro código, estos fragmentos de código reciben el nombre de funciones.

Las funciones pueden devolver valores hacia donde ha sido llamada, por ejemplo podemos igualar una variable a la llamada de una función cuando queremos guardar el resultado de un cálculo en esa variable.

 Ejemplos de return en Python

Ahora vamos a comprender mediante algunos ejemplos cómo podemos utilizar la sentencia return en Python, es decir, devolver valores desde nuestras funciones.

Para comenzar vamos a ver un ejemplo en el que no utilizamos return:

def foo(a,b):
    c = a + b

result = foo(8,1)

Este ejemplo puede parecer absurdo o incluso puedes pensar que es err√≥neo, pero nada m√°s lejos de la realidad. Este fragmento de c√≥digo es sint√°cticamente correcto, aunque puede que no realice lo que nosotros deseamos. ¬ŅEntonces si el c√≥digo es correcto que devuelve? Pues devuelve un¬†None, que en Python significa un tipo nulo o vac√≠o. He puesto este ejemplo para dejar claro que Python no requiere de la sentencia¬†return¬†para devolver valores de una funci√≥n.

Ahora vamos a realizar el código anterior, pero esta vez devolviendo el resultado de la operación:

def foo(a,b):
    return a + b

result = foo(1,5)

En este caso, habría más opciones como por ejemplo almacenar el resultado en la variable c que teníamos antes, y luego retornar esta variable. He querido hacerlo de esta manera para ilustrar cómo se pueden realizar operaciones al utilizar return en Python.

Por √ļltimo, vamos a ver un ejemplo bastante √ļtil que en otros lenguajes como Java no se puede realizar tan f√°cilmente:

def foo(a,b):
    return a + b, a * b

s, m = foo(4,19)

Como se puede ver estamos retornando dos operaciones hacia dos variables de forma muy simple. De este ejemplo, se pueden realizar multitud de variantes seg√ļn nuestras necesidades. A continuaci√≥n, vamos a ver algunas:

s = foo(4,19)[0]

En este ejemplo, estamos cogiendo solo el primer valor que se retorna de la función y cómo puedes imaginar los valores de retorno se almacenan en una tupla (como una lista pero que no puede modificarse) por eso podemos acceder a ellos mediante índice.

Hilando con el c√≥digo anterior, en el siguiente ejemplo podemos ver que si igualamos una variable a una funci√≥n que retorna m√ļltiples valores en la variable se almacenar√° una tupla:

result = foo(4,19)

Quizás puedes preguntarte como sé que se retorna una tupla y no una lista, pues esto se puede comprobar fácilmente al imprimir result:

print(result)

Se imprime lo siguiente:

(23, 76)

Cómo puedes observar la estructura de datos está representada con paréntesis, por lo tanto, podemos concluir que es una tupla, porque una lista se representa con corchetes [ ].

Fuentes

https://docs.python.org/3/reference/simple_stmts.html#return