开发者社区> 问答> 正文

Python 3.2+

Python 3.2+

展开
收起
montos 2020-04-16 21:41:00 498 0
1 条回答
写回答
取消 提交回答
  • 我们来实现一个斐波那契计算器,并使用lru_cache。

    from functools import lru_cache
    
    @lru_cache(maxsize=32)
    def fib(n):
        if n < 2:
            return n
        return fib(n-1) + fib(n-2)
    
    >>> print([fib(n) for n in range(10)])
    # Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
    

    那个maxsize参数是告诉lru_cache,最多缓存最近多少个返回值。 我们也可以轻松地对返回值清空缓存,通过这样:

    fib.cache_clear()
    
    2020-04-16 21:41:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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