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

Facundo Batista facundobatista en gmail.com
Vie Dic 17 14:49:48 ART 2010


2010/12/17 Eliseo Ocampos <roskoff en gmail.com>:

> 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

>>> def check_value(key, algo):
...   return algo.get(key, type(key)())
...
>>> check_value(5, {})
0
>>> check_value("foo", {})
''
>>> check_value(3.44, {})
0.0

Diccionarios no vas a poder soportar, porque no son hashables (no los
podés usar como claves en el dict).

Slds.

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/



More information about the pyar mailing list