from functools import lru_cache
@lru_cache(maxsize=10)
def read_file(file_path):
print(' * reading', file_path)
return file_path # update to return the read file
for i in range(100):
if i % 2 == 0:
i = 0 # test that requests for 0 don't require additional i/o
print(' * value of', i, 'is', read_file(i))
您可以使用^{} 及其方法
popitem
来确保只保留最后添加到字典的n键。用popitem
指定last=False
可以确保行为是“FIFO”,即先进先出。下面是一个小例子:对于我的特殊问题,由于我需要从磁盘读取文件,我想我将使用lru缓存,正如@PatrickHaugh建议的那样。有一种方法可以使用缓存:
输出显示对0的请求不会产生额外的i/o,这是完美的。你知道吗
为此使用
collections.deque
,maxlen为6,这样它只存储最后6个元素,并将信息存储为键值对相关问题 更多 >
编程相关推荐