
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3784 fd906abe-77d9-0310-91a1-e0d9ade77398
42 lines
700 B
Text
42 lines
700 B
Text
============
|
|
Data Caching
|
|
============
|
|
|
|
$Id$
|
|
|
|
>>> from cybertools.util import cache
|
|
>>> cache = cache.internalCache
|
|
|
|
>>> @cache(lambda *args: 'calc')
|
|
... def calculate():
|
|
... print 'calculating'
|
|
... return 42
|
|
|
|
>>> calculate()
|
|
calculating
|
|
42
|
|
>>> calculate()
|
|
42
|
|
|
|
>>> class Demo(object):
|
|
... id = '4711'
|
|
... def getId(self, *args):
|
|
... return self.id
|
|
... @cache(getId)
|
|
... def calculate(self):
|
|
... print 'calculating'
|
|
... return 42
|
|
|
|
>>> demo = Demo()
|
|
>>> demo.calculate()
|
|
calculating
|
|
42
|
|
>>> demo.calculate()
|
|
42
|
|
|
|
>>> demo.id = '4712'
|
|
>>> demo.calculate()
|
|
calculating
|
|
42
|
|
>>> demo.calculate()
|
|
42
|