• Python 3.2及以后版本

    Python 3.2及以后版本

    我们来实现一个斐波那契计算器,并使用lru_cache

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

    那个maxsize参数是告诉lru_cache,最多缓存最近多少个返回值。

    我们也可以轻松地对返回值清空缓存,通过这样:

    1. fib.cache_clear()