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

Eugenia Bahit eugeniabahit en gmail.com
Dom Sep 9 19:53:59 ART 2012


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!!! :))
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120909/3795e7bb/attachment.html>


More information about the pyar mailing list