title: Tell IPython to use an object's `__str__` instead of `__repr__` for output
body: <p>By default, when IPython displays an object, it seems to use <code>__repr__</code>.</p>
  
  <p><code>__repr__</code> is supposed to produce a unique string which could be used to reconstruct an object, given the right environment.
  This is distinct from <code>__str__</code>, which supposed to produce human-readable output.</p>
  
  <p>Now suppose we've written a particular class and we'd like IPython to produce human readable output by default (i.e. without explicitly calling <code>print</code> or <code>__str__</code>).
  We don't want to fudge it by making our class's <code>__repr__</code> do <code>__str__</code>'s job.
  That would be breaking the rules.</p>
  
  <p>Is there a way to tell IPython to invoke <code>__str__</code> by default for a particular class?</p>