joblib系列:自界说缓存机制参数化
joblib系列:自界说缓存机制参数化from functools import wraps
from joblib import Memory
# USE_CACHE_FLAG = False# 定义是否使用缓存的标志
# 使用缓存机制
USE_CACHE_FLAG = True# 定义是否使用缓存的标志
CACHE_DIR_PATH = "./joblib_cache"
VERBOSE_FLAG = 0
def cache_if_needed(
use_cache=True,
cache_dir_path='./joblib_cache',
verbose_flag=0
):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
if use_cache:
joblib_memory = Memory(
location=cache_dir_path, verbose=verbose_flag
)
return joblib_memory.cache(func)(*args, **kwargs)
else:
return func(*args, **kwargs)
return wrapper
return decorator
@cache_if_needed(
use_cache=USE_CACHE_FLAG,
cache_dir_path=CACHE_DIR_PATH,
verbose_flag=VERBOSE_FLAG
)
def expensive_computation(a, b):
print("Computing expensive_computation...")
return a * b + a / b
if __name__ == '__main__':
output_with_cache = expensive_computation(1, 2)
print(f"==>> output_with_cache: {output_with_cache}")
# # 不使用缓存机制, 设置USE_CACHE_FLAG=False
# output_without_cache = expensive_computation(3, 4)
# print(f"==>> output_without_cache: {output_without_cache}")
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]