import time
import datetime
def cache(d={},cache_time=3):
def _cache(func):
def wrapper(*args,**kwargs):
if d.get(args) is None or datetime.datetime.now().timestamp()-d[args][1]>cache_time:
value = func(*args,**kwargs)
d[args] = (value,datetime.datetime.now().timestamp())
return value
else:
print('using cache')
print(d[args][0])
return d[args][0]
return wrapper
return _cache
@cache(cache_time=5)
def test_func(x,y):
time.sleep(3)
print(x**y)
return x**y
test_func(1,2)
time.sleep(4)
test_func(1,2)
test_func(2,4)
test_func(2,4)
python装饰器实现cache
猜你喜欢
转载自blog.csdn.net/qq_32835305/article/details/86561995
今日推荐
周排行