クラスの特定のメソッドをキャッシュしたい - ただし、read_only
クラスのインスタンスにフラグが設定されている場合のみ。
したがって、以下のオブジェクトでは、メソッドをキャッシュ可能にしたいのですが、 True のget()
場合のみです。self.readonly
インスタンス化されたときではなく、クラスが定義されたときに設定されるため、デコレータを条件付きで使用することはできません。
from beaker.cache import cache_regions, cache_region
cache_regions.update({
'long_term':{
'expire':86400,
'type':'dbm',
'data_dir':'/tmp',
'key_length': 32,
}
})
class Foo(object):
def __init__(self, read_only=True):
self.read_only = read_only
@cache_region('long_term')
def get(self, arg):
return arg + 1