title: Override property with instance field
body: <p>I'm trying to implement caching of value returned from database:</p>
  
  <pre><code>class Foo
  
  ...
  
      def getTag(self):
          value = self._Db.get(self._f[F_TAG])
  
          setattr(self, 'tag', value)
  
          return value
  
      def _setTag(self, tag):
          self._Db.set(self._f[F_TAG], tag)
  
  
      tag = property(getTag)
  
  ...
  
  x = Foo()        
  
  x._setTag("20")
  print(x.tag)
  x._setTag("40")
  print(x.tag)
  </code></pre>
  
  <p>When I first time handle <strong>tag</strong> property, it must get value from DB and override <em>class</em> field <strong>tag</strong> with <em>instance</em> field for following use, but error occurs:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/home/altera/www/autoblog/core/dbObject.py", line 99, in &lt;module&gt;
      print(x.tag)
    File "/home/altera/www/autoblog/core/dbObject.py", line 78, in getTag
      setattr(self, 'tag', value)
  AttributeError: can't set attribute
  </code></pre>