title: Class instances overwrite attributes
body: <p>I've written a class in Python for calculations, it looks like:</p>
  
  <pre><code>default = {…}
  
  class Case(object):
      def __init__(self, name, wt, wd, ft, bc, burnup, cr_state):
          self.name = name
          self.burnup = burnup
          self.infn = 'fa-'+faType+'-'+str(self.burnup)+'-'+self.name
          self.data = default
          self.data['caseName'] = name
          self.data['water-temp'] = str(wt)
          self.data['water-den'] = str(wd)
          self.data['fuel-temp'] = str(ft)
          self.data['boron-con'] = str(bc)
          self.cr_state = cr_state
          self.data['cr_state'] = cr_state
          self.data['burnup'] = str(burnup)
  </code></pre>
  
  <p>Actually it implements more methods, but this should be enough just to illustrate.</p>
  
  <p>The problem is that when I'm trying to create different instances of this class they turn out to have same attributes, like:</p>
  
  <pre><code>basis = Case('basis', 578.0, 0.71614, 578.0, 0.00105, 0, 'empty')
  wt450 = Case('wt450', 450.0, 0.71614, 578.0, 0.00105, 0, 'empty')
  </code></pre>
  
  <p>and after this if I check:</p>
  
  <pre><code>print basis.data == wt450.data
  </code></pre>
  
  <p>it returns <code>True</code>. Where can the root of the problem be?</p>