我试图声明一个类变量,它应首先在get函数中设置为数据库对象。然后,当进行更改时,post函数应该更改类变量的属性。当我设置它时,我得到的错误取决于我最初设置类变量的内容。
即。如果我将其声明为= None,则会收到NoneType错误。如果我将其声明为' 1'我得到一个' str对象没有属性...'我尝试as = object()并获得与字符串相同的消息...除了对象:)
例如
class myClass():
user = ???
def get(self):
self.user = database/memcache hit
def post(self):
self.user.name = self.request.get('name')
任何帮助都会非常感激,因为我被卡住了!
答案 0 :(得分:0)
您想要的是缓存property
。
class myClass():
def __init__(self):
self._name = None
def _user_get(self):
if self._name is None:
self._name = <get name from database>
return self._name
def _user_set(self, value):
<set name to value in database>
<if that succeeded then>
self._name = value
<or if you want it to be just re-fetched>
self._name = None
user = property(_user_get, _user_set)
类似的东西,但我确信有些人可以提供更简短的版本。