首页 > 程序开发 > Web开发 > Python >

python 对一个函数执行速度控制的演示

2011-07-30

#coding:utf-8'''''python 对一个函数执行速度控制的演示,原理和 对网速控制比较类似,这里更简单'''import timedef RateLimited(maxsec): '速度控制修饰函数 minIn...

#coding:utf-8

'''''

python 对一个函数执行速度控制的演示,原理和 对网速控制比较类似,这里更简单

'''

import time

def RateLimited(maxsec):

'速度控制修饰函数

minInterval = 1.0 / float(maxsec)

def decorate(func):

#使用数组 记录上一次的时间,利用闭包还是蛮方便的

lastTimeCalled = [0.0]

def rateLimitedFunction(*args,**kargs):

elapsed = time.time() - lastTimeCalled[0]

#计算剩余时间

leftToWait = minInterval - elapsed

if leftToWait>0:

#时间未到先暂停一会

time.sleep(leftToWait)

ret = func(*args,**kargs)

#更新时间

lastTimeCalled[0] = time.time()

return ret

return rateLimitedFunction

return decorate

@RateLimited(0.5) # 每秒最多调用几次

def PrintNumber(num):

print num

if __name__ == "__main__":

print "打印1,2,3... 每2秒打印一个"

for i in range(1,100):

PrintNumber(i)

相关文章
最新文章
热点推荐