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装饰器decorator介绍
Nov 21 Python
用python实现简单EXCEL数据统计的实例
Jan 24 Python
Python实现注册登录系统
Aug 08 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
详解Python中import机制
Sep 11 Python
详解KMP算法以及python如何实现
Sep 18 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 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与https跨域共享session的解决方法
2014/12/20 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
python操作xml文件示例
2014/04/07 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
python 阶乘累加和的实例
2019/02/01 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
参观监狱心得体会
2014/01/02 职场文书
四年大学自我鉴定
2014/02/17 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
英语分层教学实施方案
2014/06/15 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书