彼得·奥特(Peter Otten)在2008-11-13 09:03写道:
... def __init __(self):... self.value_in_database = 0 .......... def youne_slow_database_access(self):...返回self.value_in_database .......................................................... self):...结果= self.very_slow_database_access()... self.show =结果...返回结果...
上面的工作仅是因为属性与经典课程不起作用。如果
您使Cacher成为Newstyle类(从对象中继承)您会得到
一个属性。因此,我认为这要干净
使用__getAttr __()或
更改cacher
cacher类(对象):
def __init __(自我):
self._show =无
#...
@财产
def show(self):
结果= self._show
如果结果没有:
结果= self._show = self.very_slow_database_access()
返回结果
您还应该考虑根本不使用属性。
属性访问应该是快速的,如果有的话,仅由于原因
属性。
您的self.very_slow_database_access()呼叫可以提高各种
错误,可能需要花费太长时间 休闲用户会 期望写作打印(Cache.Show)。 最好将其写为方法,然后使用 用于缓存数据库读取值的实例属性。 - - 马克·安德烈·伦堡 egenix.com 直接来自来源的专业Python服务(2008年11月13日,#1) ______________________________________________________________________________________________________ ::::尝试MXODBC.ZOPE.DA Windows,Linux,Solaris,MacOSX免费! :::: egenix.com软件,技能和服务GmbH Pastor-Loeh-Str.48 D-40764德国Langenfeld。 首席执行官大队。 马克·安德烈·伦堡 在Amtsgericht Duesseldorf注册:HRB 46611