Saltar a contenido

Retorno de valores

Para comunicarse con el exterior, las funciones pueden devolver valores al proceso principal gracias a la instrucción return.

En el momento de devolver un valor, la ejecución de la función finalizará:

def test():
    return "Una cadena retornada"

test()
'Una cadena retornada'

Los valores devueltos se tratan como valores literales directos del tipo de dato retornado:

print(test())
Una cadena retornada

Por ejemplo no podemos sumar una cadena con un número:

c = test() + 10
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-0ac9d7015445> in <module>()
----> 1 c = test() + 10

TypeError: Can't convert 'int' object to str implicitly

También podemos devolver cualquier tipo de colección y manejarla directamente:

def test():
    return [1,2,3,4,5]

print(test())
print(test()[-1])
print(test()[1:4])
[1, 2, 3, 4, 5]
5
[2, 3, 4]

Evidentemente es posible asignar el valor retornado a una variable:

lista = test()
print(lista[-1])
5

Retorno múltiple

Una característica interesante, es la posibilidad de devolver múltiples valores separados por comas:

def test():
    return "Una cadena", 20, [1,2,3]

test()
('Una cadena', 20, [1, 2, 3])

Estos valores se tratan en conjunto como una tupla inmutable y se pueden reasignar a distintas variables:

cadena, numero, lista = test()

print(cadena)
print(numero)
print(lista)
Una cadena
20
[1, 2, 3]

Última edición: 25 de Septiembre de 2018