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 相关文章推荐
python中的一些类型转换函数小结
Feb 10 Python
python中的yield使用方法
Feb 11 Python
Python实现简单状态框架的方法
Mar 19 Python
python实现数据图表
Jul 29 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
python3使用GUI统计代码量
Sep 18 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python web如何在IIS发布应用过程解析
May 27 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 Python
Opencv实现二维直方图的计算及绘制
Jul 21 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
谈谈关于php的优点与缺点
2013/04/11 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
js实现小时钟效果
2020/03/25 Javascript
Python中自定义函数的教程
2015/04/27 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
python 字符串和整数的转换方法
2018/06/25 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
详解Python中is和==的区别
2019/03/21 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
初中同学聚会邀请函
2014/02/03 职场文书
岗位聘任书范文
2014/03/29 职场文书
2014年计生标语
2014/06/23 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书