: 2009/9/27 Peng Yu <pengyu...@gmail.com>: >>> But I want an even simpler solution. I don't want the user to define >>> __pretty__. Is there a tool that can automatically print the content >>> of an object without defining such a member function like __pretty__.
Not tested (much): from pprint import pprint def examine(obj, limit=3): truncated = dict() for attr_name in dir(obj): if attr_name.startswith(("__", "_%s__" % obj.__class__.__name__)): continue # don't include "private" or special attributes attr = getattr(obj, attr_name) if callable(attr): continue # don't include methods if hasattr(attr, "__getitem__") and not isinstance(attr, str): truncated[attr_name] = attr[:limit] else: truncated[attr_name] = attr pprint(truncated) It truncates sequences silently, which may or may not be what you want. -[]z. -- http://mail.python.org/mailman/listinfo/python-list