【发布时间】:2016-04-06 01:53:43
【问题描述】:
我正在使用来自functools 的装饰器@lru_cache(maxsize=None),我不想将记忆值保存到文件中,以避免每次运行代码时重新计算它们。
与将参数和值打印到文件然后读取它们不同,有没有一种优雅的方式来执行此操作?
【问题讨论】:
-
functools.lru_cache()旨在使用任意位置和关键字参数,以及可能的最大缓存大小。如果您不需要这些功能,那么滚动您自己的缓存(又名 memoize)装饰器并不难。缓存只是一个字典,因此您可以提供一个函数将其作为pickle(或json,如果您希望能够查看它)保存到磁盘并稍后重新加载。 lru_cache 源代码也是available;修改它以满足您的需要。 -
@RootTwo 您能否添加此评论作为答案?这确实是我一直在寻找的答案。
标签: python save memoization lru