title: Should a return statement have parentheses?
body: <p>Suppose we have in Python 3.x (and I guess in Python 2.6 and in Python 2.7 too) the following functions:</p>
  
  <pre><code>&gt;&gt;&gt; def dbl_a(p): return p*2
  &gt;&gt;&gt; def dbl_b(p): return(p*2)
  &gt;&gt;&gt; def dbl_c(p): return (p*2)
  </code></pre>
  
  <p>If we run them we get:</p>
  
  <pre><code>&gt;&gt;&gt; dbl_a(42)
  84
  &gt;&gt;&gt; dbl_b(42)
  84
  &gt;&gt;&gt; dbl_c(42)
  84
  </code></pre>
  
  <p>The three functions provide the same result (value and type) and they seem to be equivalent. </p>
  
  <p>But which of them has the more correct <code>return</code> statement?</p>
  
  <p>Is there any side-effect in any of those definitions?</p>
  
  <p>The same questions apply to the following situation with multiple values returned:</p>
  
  <pre><code>&gt;&gt;&gt; def dbl_triple_a(p): return p*2, p*3
  &gt;&gt;&gt; def dbl_triple_b(p): return(p*2, p*3)
  &gt;&gt;&gt; def dbl_triple_c(p): return (p*2, p*3)
  
  &gt;&gt;&gt; dbl_triple_a(42)
  (84, 126)
  &gt;&gt;&gt; dbl_triple_b(42)
  (84, 126)
  &gt;&gt;&gt; dbl_triple_c(42)
  (84, 126)
  </code></pre>
  
  <p>In this case every function returns a <strong>tuple</strong>, but my questions still remain the same.</p>