[pyar] Tipo del valor de retorno distinto según los parámetros

#Mike - michael.ibarra en gmail.com
Vie Dic 17 09:35:53 ART 2010


2010/12/17 Eliseo Ocampos <roskoff en gmail.com>:
> Buenos días Pyar,
>
> Tengo la siguiente función:
> def check_value(key,instance):
>     if key in instance:
>         return instance[key]
>     else:
>         return ""
>
> La cual se usaría así:
> valor = check_value("nombre", datos_personales)   # datos_personales:
> {'nombre': 'Eliseo', 'apellido': 'Ocampos'}
>
> Así, si no existiera la clave nombre, valor sería '' (string vacío)
>
> Pero ahora tengo otro requerimiento adicional que sería soportar enteros,
> floats (por ahora, más adelante probablemente necesite soportar también
> dicionarios), en fin, se me ocurrieron dos formas:
> 1. Hacer funciones distintas según el tipo de dato a retornar, por ejemplo:
> def check_value_int(key,instance):
>     if key in instance:
>         return instance[key]
>     else:
>         return 0
>
> 2. Usar la misma función pero pasarle un parámetro extra para indicar el
> tipo de dato a retornar, por ejemplo:
> def check_value(key,instance, type):
>     if key in instance:
>         return instance[key]
>     else:
>         if type = INT:  # constante definida
>             return 0
>         elif type = STRING:
>             return ''
> la cual se usaría así:
>    valor = check_value("edad", datos_personales, INT)   # datos_personales:
> {'nombre': 'Eliseo', 'apellido': 'Ocampos', 'edad': 26}
>
> Mi pregunta es, hay algo que sea mas pythonico? Cúal sería la forma más
> genérica de extender a otros tipos de datos posibles que pueda tener? O esto
> es un capricho mío nomás por ser haragán y no querer escribir más de una
> función?

Leyendo a la volada, esto te podria ayudar..
http://docs.python.org/library/types.html
>
> Saludos,
> Eliseo.
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



-- 
Michael Ibarra



More information about the pyar mailing list