如何在python中导出lru_cache?

时间:2016-04-06 01:53:44

标签: python save memoization lru

我正在使用来自@lru_cache(maxsize=None)的装饰器functools,我不想将记忆值保存到文件中,以避免每次运行代码时重新计算它们。< / p>

是否有一种优雅的方法可以将args和值打印到文件然后再读取它们?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

@CarlosPinzón,根据您的要求发布了答案:functools.lru_cache()旨在处理任意位置和关键字参数,并可能使用最大缓存大小。如果您不需要这些功能,那么滚动自己的缓存(也就是memoize)装饰器并不困难。缓存只是一个字典,因此您可以提供一个函数将其作为pickle保存到磁盘(如果您希望能够查看它,则为json)并在以后重新加载。 lru_cache源代码也可用;修改它以满足您的需求。

相关问题