2024-03-28 17:45:14 发布
网友
在Python3中的functools包中,有一个lru_cache()修饰符,它将记录函数调用。在
Python3
functools
lru_cache()
有没有办法让我把这个缓存转储到一个文件中,然后在以后将文件加载回内存中?在
我在functools文档中找不到这个功能。实现上述要求的推荐方法是什么,最好是只涉及Python的解决方案?在
我不知道解决这个问题的标准方法。 但你可以这样写注释:
def diskcached(cachefile, saveafter=1): def cacheondisk(fn): try: with open(cachefile, 'rb') as f: cache = pickle.load(f) except: cache = {} unsaved = [0] @wraps(fn) def usingcache(*args, **kwargs): try: key = hash((args, kwargs)) except TypeError: key = repr((args, kwargs)) try: ret = cache[key] except KeyError: ret = cache[key] = fn(*args, **kwargs) unsaved[0] += 1 if unsaved[0] >= saveafter: with open(cachefile, 'wb') as f: pickle.dump(cache, f) unsaved[0] = 0 return ret return usingcache return cacheondisk
和一起使用
我不知道解决这个问题的标准方法。 但你可以这样写注释:
和一起使用
^{pr2}$相关问题 更多 >
编程相关推荐