如何在 python 中导出 lru_cache?

How to export lru_cache in python?

我正在使用 functools 中的装饰器 @lru_cache(maxsize=None),并且我不想将记忆值保存到文件中以避免每次 [=18] 时重新计算它们=]代码。

有没有一种优雅的方式可以不同于将参数和值打印到文件然后读取它们?

不,我认为唯一的方法是获取 .cache_info() 函数的信息并写入文件。

它将是一个包含您需要的信息的 CacheInfo 对象。

@Carlos Pinzón,按照您的要求作为答案发布:functools.lru_cache() 旨在处理任意位置和关键字参数,并且可能有最大缓存大小。如果您不需要这些功能,那么滚动您自己的缓存(又名 memoize)装饰器并不太困难。缓存只是一个字典,所以你可以提供一个函数将它作为 pickle 保存到磁盘(或者 json 如果你想查看它)并在以后重新加载它。 lru_cache 源代码也可用;修改它以满足您的需要。