Python进阶
搜索文档…
⌃K

Python 2+

你可以创建任意种类的缓存机制,有若干种方式来达到相同的效果,这完全取决于你的需要。 这里是一个一般的缓存:
from functools import wraps
def memoize(function):
memo = {}
@wraps(function)
def wrapper(*args):
if args in memo:
return memo[args]
else:
rv = function(*args)
memo[args] = rv
return rv
return wrapper
@memoize
def fibonacci(n):
if n < 2: return n
return fibonacci(n - 1) + fibonacci(n - 2)
fibonacci(25)
这里有一篇 Caktus Group 的不错的文章,在其中他们发现一个 Django 框架的由 lru_cache 导致的 bug。读起来很有意思。一定要打开去看一下。