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


Posted in Python onApril 21, 2018

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

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

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

#newtest.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import time
def 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_time
def foo():
 print("I'm foo")
if __name__=='__main__':
 for i in range(10):
  foo()
#test.py
from newtest import foo
import time
for 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 限制函数调用次数的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于Django的python验证码(实例讲解)
Oct 23 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
解决Python安装后pip不能用的问题
Jun 12 Python
pycharm安装和首次使用教程
Aug 27 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
May 29 Python
python安装requests库的实例代码
Jun 25 Python
浅析python中while循环和for循环
Nov 19 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
java字符串格式化输出实例讲解
Jan 06 Python
python神经网络Xception模型
May 06 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 #Python
对Python中的@classmethod用法详解
Apr 21 #Python
python3+dlib实现人脸识别和情绪分析
Apr 21 #Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 #Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 #Python
使用pandas读取csv文件的指定列方法
Apr 21 #Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 #Python
You might like
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
一个简单的javascript类定义例子
2009/09/12 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
python实现代码行数统计示例分享
2014/02/10 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
专业实习自我鉴定
2013/10/29 职场文书
英文版餐饮运营管理求职信
2013/11/06 职场文书
利群广告词
2014/03/20 职场文书
村干部承诺书
2014/03/28 职场文书
运动会演讲稿300字
2014/08/25 职场文书
安全月宣传标语
2014/10/07 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers