def __repr__(self): sub_str = dict.__repr__(self)[1:-1] if not sub_str: return self.__class__.__name__ + '()' # This does not completely generalize, but it works for most cases. for old, new in [('), ', '),\n'), ('\n', '\n ')]: sub_str = sub_str.replace(old, new) return'%s(\n %s\n)' % (self.__class__.__name__, sub_str)