title: Python default keyword parameters persisting
body: <p>Consider the following code</p>
  <pre><code>def func(para = []):
      para.append(1)
      return para
      
  print(func())
  print(func())
  </code></pre>
  <p>the output is</p>
  <pre><code>[1]
  [1, 1]
  </code></pre>
  <p>The function somehow reuses <code>para</code>, I realize pointers are used for classes, lists, dicts, etc but here the <code>para</code> should be redefined as it is not being passed when <code>func</code> is called.</p>
  <p>I don't remember it being like this, either way, is there a way to make it so <code>para</code> resets to a empty list when <code>func</code> is executed?</p>