title: Does Python make a copy of objects on assignment?
body: <p>When I try this code:</p>
  <pre><code>dict_a = dict_b = dict_c = {}
  dict_c['hello'] = 'goodbye'
  
  print(dict_a)
  print(dict_b)
  print(dict_c)
  </code></pre>
  <p>I expected that it would just initialise the <code>dict_a</code>, <code>dict_b</code> and <code>dict_c</code> dictionaries, and then assign a key in <code>dict_c</code>, resulting in</p>
  <pre><code>{}
  {}
  {'hello': 'goodbye'}
  </code></pre>
  <p>But it seems to have a copy-through effect instead:</p>
  <pre><code>{'hello': 'goodbye'}
  {'hello': 'goodbye'}
  {'hello': 'goodbye'}
  </code></pre>
  <p>Why?</p>