title: dict.get() method returns a pointer
body: <p>Let's say I have this code:</p>
  
  <pre><code>my_dict = {}
  default_value = {'surname': '', 'age': 0}
  
  # get info about john, or a default dict
  item = my_dict.get('john', default_value)
  
  # edit the data
  item[surname] = 'smith'
  item[age] = 68
  
  my_dict['john'] = item
  </code></pre>
  
  <p>The problem becomes clear, if we now check the value of default_value:</p>
  
  <pre><code>&gt;&gt;&gt; default_value
  {'age': 68, 'surname': 'smith'}
  </code></pre>
  
  <p>It is obvious, that <code>my_dict.get()</code> did not return the <strong>value</strong> of default_value, but a pointer (?) to it.</p>
  
  <p>The problem could be worked around by changing the code to:</p>
  
  <pre><code>item = my_dict.get('john', {'surname': '', 'age': 0})
  </code></pre>
  
  <p>but that doesn't seem to be a nice way to do it. Any ideas, comments?</p>