python 限制函数调用次数的实例讲解
如下代码,限制某个函数在某个时间段的调用次数,
灵感来源:python装饰器-限制函数调用次数的方法(10s调用一次)欢迎访问
原博客中指定的是缓存,我这里换成限制访问次数,异曲同工
#newtest.py
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importtime
defstat_called_time(func):
cache={}
limit_times=[10]
def_called_time(*args,**kwargs):
key=func.__name__
ifkeyincache.keys():
[call_times,updatetime]=cache[key]
iftime.time()-updatetime<60:
cache[key][0]+=1
else:
cache[key]=[1,time.time()]
else:
call_times=1
cache[key]=[call_times,time.time()]
print('调用次数:%s'%cache[key][0])
print('限制次数:%s'%limit_times[0])
ifcache[key][0]<=limit_times[0]:
res=func(*args,**kwargs)
cache[key][1]=time.time()
returnres
else:
print("超过调用次数了")
returnNone
return_called_time
@stat_called_time
deffoo():
print("I'mfoo")
if__name__=='__main__':
foriinrange(10):
foo()
#test.py
fromnewtestimportfoo
importtime
foriinrange(30):
foo()
print('*'*20)
foo()
foo()
print('*'*20)
foriinrange(60):
print(i)
time.sleep(1)
foriinrange(11):
foo()
以上这篇python限制函数调用次数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。