[pyar] Imprimir propiedades de una instancia de clase en forma recursiva y de forma humanamente legible

Juan Carlos Ojeda juancarlospaco en gmail.com
Dom Sep 9 20:12:10 ART 2012


2012/9/9 Eugenia Bahit <eugeniabahit en gmail.com>

> El 9 de septiembre de 2012 19:10, Mariano Garcia Berrotarán <
> garcia.berrotaran en gmail.com> escribió:
>
> Muy interesante el modulo, te tiro un par de ideas a ver que te parecen:
>>
>> donde hace
>>
>> >> return "%s>" % str(obj).replace('__main__.', '').split(' at ')[0]
>>
>> podrias hacer:
>>
>> >> return "%s>" % obj.__class__.__name__
>>
>
>
> y te evitas varias cosas, como castear el objeto a string o hacer
>> split al resultado.
>
>
> Esa opción es genial! no me había dado cuenta que seguía siendo menos
> laburo!
> Metí todo lo demás para evitar escribir "<%s object>" y en realidad, sigue
> siendo menos laburo escribirlo!!! Gracias!!
>
>
>> Por otro lado, donde hace:
>>
>> >>>   if str(value) == '':
>> >>>        return "''"
>> >>>    elif str(value).startswith('<__main__.'):
>> >>>        return get_human_object_name(value)
>> >>>    else:
>> >>>        return value
>>
>> ejecuta la funcion get_human_object_name unicamente si el valor esta
>> definido en __main__, pero si le tiro una instancia de un objeto
>> importado desde otro modulo, esa comprobacion va a fallar. Supongo que
>> estas queriendo fijarte si el valor es algo que no sea tipo basico (o
>> parte de algunos tipos basicos). Eso lo podes hacer asi:
>>
>> >>> type(value) in (str, int, float, long, set, list, tuple)
>>
>
>> o cualquier lista de tipos que quieras chequear. Tambien podes usar un
>> isinstance(obj, type) para cada tipo de valor.
>
>
> Nop. El primer if, es solo para que cuando se reciba una cadena vacía,
> imprima las comillas simples.
>
> Nuevamente GRACIAS!!! :))
>

Muy bueno, simple y efectivo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120909/3340298d/attachment.html>


More information about the pyar mailing list