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封装shell命令实例分析
May 05 Python
Python中的默认参数实例分析
Jan 29 Python
python 日期操作类代码
May 05 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
Python实现二维曲线拟合的方法
Dec 29 Python
python 同时读取多个文件的例子
Jul 16 Python
django连接oracle时setting 配置方法
Aug 29 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
PHP提取中文首字母
2008/04/09 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
js加强的经典分页实例
2013/03/15 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python实现登录接口的示例代码
2017/07/21 Python
python2 与python3的print区别小结
2018/01/16 Python
python如何实现反向迭代
2018/03/20 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
介绍一下你对SOA的认识
2016/04/24 面试题
审计工作个人的自我评价
2013/12/25 职场文书
校园十大歌手策划书
2014/02/01 职场文书
法制宣传月活动方案
2014/05/11 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
python实现简单区块链结构
2021/04/25 Python
Java 异步任务计算FutureTask
2022/04/28 Java/Android