You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中访问functools库@cache装饰器的内部键值对?

如何访问functools.cache装饰器的内置缓存键值对

functools.cache是Python 3.9+新增的装饰器,本质是lru_cache(maxsize=None)的别名,要访问它的内置缓存键值对,直接操作被装饰函数的cache属性即可,具体操作如下:

  • 先调用函数生成缓存(缓存仅在函数被调用后才会生成对应键值对)
  • 通过func.cache.items()遍历所有缓存的键值对,也可以用keys()、values()分别获取缓存的参数和返回值

示例代码:

from functools import cache

@cache
def func(a1, a2):
    return a1 + a2

# 调用函数填充缓存
func(1, 2)
func(3, 4)

# 遍历缓存的键值对
for args, result in func.cache.items():
    print(f"参数: {args}, 返回值: {result}")

输出结果:

参数: (1, 2), 返回值: 3
参数: (3, 4), 返回值: 7

注:func.cache是functools._lru_cache_wrapper的实例,支持字典式操作,虽然属于标准库的实现细节,但在CPython环境下使用稳定可靠。

内容的提问来源于stack exchange,提问作者Amish Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:24:48