How to Dump() or Print an Object or Expression in Python

With Pretty Print

If the object has an internal __dict__ attribute, describing its properties, then this works ok:

(Make require pip install pprint from an elevated console)

from pprint import pprint


The dir() method basically loops through the __dict__

So this gives a similar result:

def dump(obj):
for attr in dir(obj):
    print("obj.%s = %r" % (attr, getattr(obj, attr)))

Objects including objects without __dict__

from pprint import pprint
from inspect import getmembers
from types import FunctionType

def attributes(obj):
    disallowed_names = {
    name for name, value in getmembers(type(obj))
        if isinstance(value, FunctionType)}
    return {
    name: getattr(obj, name) for name in dir(obj)
        if name[0] != '_' and name not in disallowed_names and hasattr(obj, name)}

def dump(obj):