Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the Python equivalent of Ruby's "inspect"?

Tags:

I just want to quickly see the properties and values of an object in Python, how do I do that in the terminal on a mac (very basic stuff, never used python)?

Specifically, I want to see what message.attachments are in this Google App Engine MailHandler example (images, videos, docs, etc.).

like image 979
Lance Avatar asked Aug 24 '10 05:08

Lance


2 Answers

If you want to dump the entire object, you can use the pprint module to get a pretty-printed version of it.

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)

Edit: I may have misread what you meant by 'object' - if you're wanting to look at class instances, as opposed to basic data structures like dicts, you may want to look at the inspect module instead.

like image 57
Amber Avatar answered Oct 12 '22 12:10

Amber


use the getmembers attribute of the inspect module

It will return a list of (key, value) tuples. It gets the value from obj.__dict__ if available and uses getattr if the the there is no corresponding entry in obj.__dict__. It can save you from writing a few lines of code for this purpose.

like image 34
aaronasterling Avatar answered Oct 12 '22 12:10

aaronasterling