找回密码
 立即注册

Python 2系列版本

2022-2-21 02:41| 发布者: 笨鸟自学网| 查看: 1546| 评论: 0

摘要: 你可以创建任意种类的缓存机制,有若干种方式来达到相同的效果,这完全取决于你的需要。这里是一个一般的缓存:from functools import wraps def memoize(function): memo = {} @wraps(function) def wrapper(*args) ...

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

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

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-8-30 17:31 , Processed in 0.084881 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2017 Discuz Team. Template By 【未来科技】【 www.wekei.cn 】

返回顶部