[pyar] Imprimir propiedades de una instancia de clase en forma recursiva y de forma humanamente legible
Mariano Garcia Berrotarán
garcia.berrotaran en gmail.com
Dom Sep 9 19:10:43 ART 2012
Hola!,
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.
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.
Saludos!
--
Mariano García Berrotarán
More information about the pyar
mailing list