类对象变量=无

时间:2014-03-28 02:06:02

标签: python class class-variables

我试图声明一个类变量,它应首先在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')

任何帮助都会非常感激,因为我被卡住了!

1 个答案:

答案 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)

类似的东西,但我确信有些人可以提供更简短的版本。