开发者社区> 问答> 正文

Python 2+

Python 2+

展开
收起
montos 2020-04-16 21:41:49 570 0
1 条回答
写回答
取消 提交回答
  • 你可以创建任意种类的缓存机制,有若干种方式来达到相同的效果,这完全取决于你的需要。 这里是一个一般的缓存:

    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。读起来很有意思。一定要打开去看一下。

    2020-04-16 21:42:24
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python系列直播第一讲——Python中的一切皆对象 立即下载
From Python Scikit-Learn to Sc 立即下载
Python 脚本速查手册 立即下载