如下代码,限制某个函数在某个时间段的调用次数,
灵感python装饰器——限制函数调用次数的方法(10年代调用一次)欢迎访问
原博客中指定的是缓存,我这里换成限制访问次数,异曲同工
# newtest.py # !/usr/bin/env python # - * -编码:utf - 8 - * 导入的时间 def stat_called_time(函数): 缓存={} limit_times=[10] def _called_time (* args, * * kwargs): 关键=func.__name__ 如果关键cache.keys (): [call_times, updatetime]=缓存(例子) 如果time.time () -updatetime & lt; 60: 缓存(例子)[0]+=1 其他: 缓存[主要]=[1,time.time ()) 其他: call_times=1 缓存[主要]=[call_times time.time ()) 打印(“调用次数:% s的%缓存[主要][0]) 打印(“限制次数:% s的% limit_times [0]) 如果缓存[主要][0]& lt;=limit_times [0]: res=func (* args, * * kwargs) 缓存(例子)[1]=time.time () 返回res 其他: 打印(“超过调用次数了”) 回来没有 返回_called_time @stat_called_time def foo (): 打印(“我foo”) if __name__==癬_main__”: 因为我在范围(10): foo ()
# test.py 从纽特进口foo 导入的时间 因为我在范围(30): foo () 打印(‘*’* 20) foo () foo () 打印(‘*’* 20) 因为我在范围(60): 打印(我) time . sleep (1) 因为我在范围(11): foo ()
以上这篇python限制函数调用次数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。