擅长:python、mysql、java
<p>您的<code>x.tag</code>是一个属性,没有setter,因此当您尝试设置它时,您会收到一个错误,原因很明显。因此,将实际值存储在一个“private”字段中,比如<code>x._tag</code>,并为其编写一个getter和setter。在</p>
<pre><code>class Foo(object):
_tag = None
@property
def tag(self):
if self._tag is None:
self._tag = self._Db.get(self._f[F_TAG])
return self._tag
@tag.setter
def tag(self, tag):
self._tag = tag
self._Db.set(self._f[F_TAG], tag)
x = Foo()
print x.tag # gets the value from the database (if necessary) or f._tag
x.tag = "bar" # sets the value in the database and caches it in f._tag
</code></pre>