import types import inspect def get_doc(obj, member): found = [] if hasattr(obj, '__dict__') and member in obj.__dict__: found.append(obj.__dict__[member]) if isinstance(obj, (type, types.ClassType)): search_order = inspect.getmro(obj) else: search_order = inspect.getmro(obj.__class__) for entry in search_order: if member in entry.__dict__: if hasattr(entry.__dict__[member], '__set__'): return entry.__dict__[member].__doc__ found.append(entry.__dict__[member]) return found[0].__doc__ def get_docstrings(obj): try: members = dir(obj) except Exception: members = [] return [(member, get_doc(obj, member)) for member in members]