[pyar] Averiguar el tipo de objeto en caliente

Mauro Caceres mauro.caceres en gmail.com
Vie Ago 24 10:29:47 ART 2012


En principio resulta extraño que una interfaz te retorne un
diccionario o una lista!. Tiene que haber algo en el request o en la
respuesta que te diga que cambia.

Mas alla de eso, otra alternativa al isinstance es usar un poco de
ducktyping y en lugar de preocuparte por el tipo del objeto, ver si
puede cumplir con las operaciones que necesitas para extraer la
informacion.

Esto lo podes hacer con hasattr o manejando la excepcion TypeError


if hasattr(datos, "keys"):
     print "USANDO UN DICT"
else
     print "USANDO UNA LIST"

o

try:
     value = datos[member]
except TypeError:
    # do something else

Saludos

2012/8/24 Martin Alderete <malderete en gmail.com>:
> Buenas! como estas?
>
> 2012/8/24 Milton Labanda <1000ton.lab en gmail.com>
>>
>> Hola amigos sucede que estoy usando el WebService wspp OK instalado en
>> moodle
>> con los clientes en python. y entonces cuando llamo a un metodo de ese
>> webservice
>> me devuelve siempre un SOAPpy.Types.structuredSOAPpy , luedo de eso objeto
>> quiero recuperar un objeto que a veces es un diccionario y en otras es una
>> lista,
>> y ya he preguntado que tipo tiene y siempre me dice instance de aunque
>> despues
>> ya se convierten en lo que realmente son diccionario o lista. Como puedo
>> averiguar el
>> tipo antes de que usarlo?
>>
>
> SI no entiendo mal, lo podes solucionar con "isinstance()"
>
> if isinstance(datos, list):
>      print "USANDO UNA LISTA"
> elif isinstance(datos, dict):
>      print "USANDO UN DICT"
>
>
> Espero te sirva,
>
> saludos!
>
>
>
> --
> Alderete, Martin Nicolas
> NINJA-IDE Core Developer
>
> _______________________________________________
> 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/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Mauro Cáceres



More information about the pyar mailing list