擅长:python、mysql、java
<p>所以@matsjoyce的答案非常有趣和深入,我知道你已经有了解决方案,但我总是觉得写我自己的decorators会更清楚一些:</p>
<pre><code>def dynamic_programming(f):
def wrapper(*args, **kwargs):
try:
return wrapper.cache[args]
except KeyError:
res = wrapper.cache[args] = f(*args, **kwargs)
return res
wrapper.cache = {}
wrapper.clear = wrapper.cache.clear
return wrapper
</code></pre>