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爬虫之urllib2使用指南
Nov 05 Python
Python实现简单的可逆加密程序实例
Mar 05 Python
使用python实现rsa算法代码
Feb 17 Python
举例讲解Python中的迭代器、生成器与列表解析用法
Mar 20 Python
Python教程之全局变量用法
Jun 27 Python
Python 模拟购物车的实例讲解
Sep 11 Python
Python socket模块方法实现详解
Nov 05 Python
Python日志syslog使用原理详解
Feb 18 Python
keras K.function获取某层的输出操作
Jun 29 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Python3如何使用tabulate打印数据
Sep 25 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
vue实现移动端图片上传功能
2019/12/23 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python实现稀疏矩阵示例代码
2017/06/09 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
给物业的表扬信
2014/01/21 职场文书
党员个人整改措施
2014/10/24 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015年公务员工作总结
2015/04/24 职场文书
起诉书格式范文
2015/05/20 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
Python Pandas 删除列操作
2022/03/16 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle