擅长:python、mysql、java
<p>一个由Python的Shelve模块驱动的更干净的解决方案。其优点是缓存通过众所周知的<code>dict</code>语法实时更新,而且它还具有异常证明(无需处理烦人的<code>KeyError</code>)。</p>
<pre><code>import shelve
def shelve_it(file_name):
d = shelve.open(file_name)
def decorator(func):
def new_func(param):
if param not in d:
d[param] = func(param)
return d[param]
return new_func
return decorator
@shelve_it('cache.shelve')
def expensive_funcion(param):
pass
</code></pre>
<p>这将有助于只计算一次函数。接下来的调用将返回存储的结果。</p>