title: Good design patterns for multiple function outputs
body: <p>If you are incrementally designing a function that could have variable number of outputs, what is the best way to design that function? E.g.</p>
  
  <pre><code>def function(input):
      return output1, output2, ...
  </code></pre>
  
  <p>or </p>
  
  <pre><code>def function(input):
      return dict(output1=...)
  </code></pre>
  
  <p>In both cases, you need a bunch of if statements to sort through and utilize the outputs; the difference is where the if statements are used (within function or outside of the function over the dictionary). I am not sure what principle to use to decide on what to do.</p>