• Python 2系列版本

    Python 2系列版本

    你可以创建任意种类的缓存机制,有若干种方式来达到相同的效果,这完全取决于你的需要。
    这里是一个一般的缓存:

    1. from functools import wraps
    2. def memoize(function):
    3. memo = {}
    4. @wraps(function)
    5. def wrapper(*args):
    6. if args in memo:
    7. return memo[args]
    8. else:
    9. rv = function(*args)
    10. memo[args] = rv
    11. return rv
    12. return wrapper
    13. @memoize
    14. def fibonacci(n):
    15. if n < 2: return n
    16. return fibonacci(n - 1) + fibonacci(n - 2)
    17. fibonacci(25)

    这里有一篇Caktus Group的不错的文章,在其中他们发现一个Django框架的由lru_cache导致的bug。读起来很有意思。一定要打开去看一下。