Nov 10
Python: Funciones que devuelven más de un valor
Muchas veces nos encontramos con situaciones en las que nos vendría muy bien poder devolver más de un valor en una función… generalmente podemos recurrir a arrays, colecciones, diccionarios, hastables, etc. Pero en Python podemos devolver múltiples valores en una misma función y lo mejor de todo es que esos valores de retorno pueden ser de diferente tipo.
Dejo un par de ejemplos, escribo la función y luego la ejecuto para probar.
def masUnoMasDos(x): return x+1, x+2 print "" print "masUnoMasDos()" a,b = masUnoMasDos(7) print "x+1 = "+str(a) print "x+2 = "+str(b) print "---------" def rojo(): return 255, 0, 0 print "" print "rojo()" print rojo() print "---------" def rojoHexa(): return "ff", "00", "00" print "" print "rojoHexa()" print rojoHexa()
Obtendremos la siguiente salida:
masUnoMasDos()
x+1 = 8
x+2 = 9
---------
rojo()
(255, 0, 0)
---------
rojoHexa()
('ff', '00', '00')
Para probar este código rápidamente, en caso de no tener Python instalado pueden utilizar http://codepad.org que es una excelente herramienta online, la misma permite compilar y ejecutar código en varios lenguajes, incluyendo: C/C++, D, Haskel, PHP, Pearl, Python y Ruby, entre otros.

Noviembre 11, 2008 5:42hs
interesante, sobre todo el primer caso: a,b = masUnoMasDos(7), parece que ejecuta dos veces la funcion llamando una sola vez al metodo.
Noviembre 11, 2008 10:44hs
Suena como si no se estuviera recurriendo a uno de esos tipos, pero el caso es que, al hacer lo que comentas, lo que hace python es devolver una tupla (que es uno de esos tipos), así que tampoco es que los estés esquivando mucho.
Puedes comprobarlo en el interprete de python:
Noviembre 11, 2008 19:35hs
@maeghith: Tienes razón, pero creo que no me expliqué bien, a lo que yo me refiero es a que generalmente declaras un Array, lo cargas con los valores a devolver y recién ahí haces el return, en cambio con ésta posibilidad de Python puedes hacer el return directamente.
Noviembre 13, 2008 15:37hs
eso es porque no es un lenguaje tipado, lo que no quiere decir que no estes usando el tipo, o que el python no lo este usando xDDD
PD: de puro throll noma
Diciembre 26, 2008 8:49hs
[...] Vía: Nuevos Programadores [...]