code: def print_object(self, d, h, n, nl=False):
          
          s = []
          cls = d.__class__
          md = d.__metadata__
          if d in h:
              s.append('(')
              s.append(cls.__name__)
              s.append(')')
              s.append('...')
              return ''.join(s)
          h.append(d)
          if nl:
              s.append('\n')
              s.append(self.indent(n))
          if cls != Object:
              s.append('(')
              if isinstance(d, Facade):
                  s.append(md.facade)
              else:
                  s.append(cls.__name__)
              s.append(')')
          s.append('{')
          for item in d:
              if self.exclude(d, item):
                  continue
              item = self.unwrap(d, item)
              s.append('\n')
              s.append(self.indent(n+1))
              if isinstance(item[1], (list, tuple)):
                  s.append(item[0])
                  s.append('[]')
              else:
                  s.append(item[0])
              s.append(' = ')
              s.append(self.process(item[1], h, n, True))
          s.append('\n')
          s.append(self.indent(n))
          s.append('}')
          h.pop()
          return ''.join(s)
docs: print complex using the specified indent (n) and newline (nl).