贝利信息

Python函数缓存机制_lru_cache应用说明【指导】

日期:2026-01-04 00:00 / 作者:冰川箭仙
@lru_cache适用于纯函数的性能优化,基于LRU策略缓存结果;需满足参数可哈希、无副作用、不依赖外部状态,并合理设置maxsize以防内存膨胀。

@lru_cache 是 Python 标准库 functools 中提供的轻量级函数结果缓存装饰器,适用于**纯函数**(即相同输入总返回相同输出、无副作用)的性能优化场景。它基于最近最少使用(LRU)策略管理缓存,避免重复计算,尤其对递归、高频调用或耗时计算类函数效果显著。

什么时候该用 @lru_cache?

以下情况建议启用:

基础用法与常见配置

最简写法:

  from functools import lru_cache
  
  @lru_cache()
  def fib(n):
    if n
      return n
    return fib(n-1) + fib(n-2)

关键参数说明:

必须注意的限制和陷阱

@lru_cache 不是万能加速器,踩坑点包括:

查看和管理缓存状态

装饰后函数会新增两个实用方法:

例如:
  print(fib.cache_info())  # CacheInfo(hits=98, misses=10, maxsize=128, currsize=10)
  fib.cache_clear()