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限制函数调用次数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。