2010-08-24 27 views

Respuesta

13

utilizar el atributo getmembers del módulo

inspect Se devolverá una lista de tuplas (key, value). Obtiene el valor de obj.__dict__ si está disponible y utiliza getattr si no hay una entrada correspondiente en obj.__dict__. Puede evitar escribir algunas líneas de código para este propósito.

6

actualización

Hay mejores maneras de hacer esto que dir. Ver otras respuestas

respuesta original

utilizar el construido en función de dir(fp) para ver los atributos de fp.

+0

gran agradecimiento, ahora puede simplemente bucle a través de los e imprimir tecla '= objeto [valor]' (clave = valor). hay una mejor manera? –

+0

No puedo pensar en otra forma de esperar quizás 'getattr', otra función incorporada. –

+1

Consulte el módulo 'inspeccionar'. – aaronasterling

16

Si desea volcar todo el objeto, puede utilizar el módulo pprint para obtener una versión bastante impresa de la misma.

from pprint import pprint 

pprint(my_object) 

# If there are many levels of recursion, and you don't want to see them all 
# you can use the depth parameter to limit how many levels it goes down 
pprint(my_object, depth=2) 

Editar: pude haber malinterpretado lo que entiende por 'objeto' - si usted está queriendo mirar a instancias de la clase, a diferencia de las estructuras de datos básicos como predice, es posible que desee ver en el módulo inspect en lugar.

0

Me sorprende que nadie ha mencionado método de Python __str__, que proporciona una representación de cadena de un objeto. Desafortunadamente, no parece imprimirse automáticamente en pdb.

También se puede utilizar __repr__ para eso, pero __repr__ tiene otros requisitos: por un lado, tiene que ser capaz de eval() la salida de __repr__.

Cuestiones relacionadas