通八洲科技

Python函数缓存策略_lru_cache应用解析【教程】

日期:2026-01-02 00:00 / 作者:冰川箭仙
@lru_cache是functools中基于LRU策略的函数缓存装饰器,适用于纯函数、可哈希参数、计算开销大且调用频繁的场景;支持maxsize控制容量、typed启用类型敏感缓存,并提供cache_info和cache_clear等管理接口。

@lru_cache 是 Python 标准库 functools 中最常用、最实用的函数缓存装饰器。它通过“最近最少使用”(LRU)策略自动缓存函数的返回值,避免重复计算,显著提升重复调用场景下的性能——尤其适合纯函数、参数可哈希、计算开销大的场景。

什么时候该用 @lru_cache?

不是所有函数都适合加缓存。以下情况推荐启用:

基础用法与关键参数

直接在函数上方添加 @lru_cache 即可启用默认缓存(maxsize=128):

示例:优化斐波那契递归

from functools import lru_cache

@lru_cache() def fib(n): if n < 2: return n return fib(n-1) + fib(n-2)

print(fib(35)) # 原本可能卡顿,加缓存后毫秒级返回

常用参数说明:

查看与管理缓存状态

缓存行为可观察、可调试:

常见陷阱与规避方法

用错地方反而引发 bug 或内存泄漏: