首页 > 编程 > Python > 正文

python 限制函数调用次数的实例讲解

2020-02-22 23:46:17
字体:
来源:转载
供稿:网友

如下代码,限制某个函数在某个时间段的调用次数,

灵感来源:python装饰器-限制函数调用次数的方法(10s调用一次) 欢迎访问

原博客中指定的是缓存,我这里换成限制访问次数,异曲同工

#newtest.py#!/usr/bin/env python#-*- coding:utf-8 -*-import timedef stat_called_time(func): cache={} limit_times=[10] def _called_time(*args,**kwargs):  key=func.__name__  if key in cache.keys():   [call_times,updatetime]=cache[key]   if time.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])  if cache[key][0] <= limit_times[0]:   res=func(*args,**kwargs)   cache[key][1] = time.time()   return res  else:   print("超过调用次数了")   return None return _called_time@stat_called_timedef foo(): print("I'm foo")if __name__=='__main__': for i in range(10):  foo()
#test.pyfrom newtest import fooimport timefor i in range(30): foo()print('*'*20)foo()foo()print('*'*20)for i in range(60): print(i) time.sleep(1)for i in range(11): foo()

以上这篇python 限制函数调用次数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表