python标准库中的functools模块,提供了functools.lru_cache,基于内存的缓存。
from functools import lru_cache
@lru_cache(maxsize=1)
def sum2(a,b):
print(f"计算{a}+{b} ... ")
return a+b
print(sum2(2,3))
print(sum2(2,3))
print(sum2(4,7))
print(sum2(4,7))
print(sum2(2,3))
print(sum2(4,7))
maxsize=1,表示可以缓存的元素的个数。
改变maxsize的值为2,再切换为1,运行程序观察输出结果,
sum2.cache_info() #查看缓存性能
sum2.cache_clear() #清除缓存
基于磁盘的缓存
"""
教程 https://joblib.readthedocs.io/en/latest/memory.html
安装 pip install joblib
"""
from joblib import Memory
memory = Memory(location="./cachedir")
@memory.cache
def sum2(a,b):
print(f"计算{a}+{b} ... ")
return a+b
print(sum2(2,3))
print(sum2(2,3))
print(sum2(4,7))
print(sum2(4,7))
print(sum2(2,3))
print(sum2(4,7))
————————————————
版权声明:本文为CSDN博主「_Tsun」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunt2018/java/article/details/97235224
原文:https://www.cnblogs.com/hanzeng1993/p/12706185.html