有人可以告诉我如何在我的代码中多次使用python中的这个类定时器。
import MOD
class timer:
def __init__(self, seconds):
self.start(seconds)
def start(self, seconds):
self.startTime = MOD.secCounter()
self.expirationTime = self.startTime + seconds
if seconds != 0:
self.running = 1
self.expired = 0
else:
self.running = 0
self.expired = 0
def stop(self):
self.running = 0
self.expired = 0
def isexpired(self):
if self.running == 1:
timeNow = MOD.secCounter()
if timeNow > self.expirationTime:
self.running = 0
self.expired = 1
else:
self.expired = 0
return self.expired
def isrunning(self):
if self.running == 1:
timeNow = MOD.secCounter()
if timeNow > self.expirationTime:
self.running = 0
self.expired = 1
else:
self.expired = 0
return self.running
def change(self, seconds):
self.expirationTime = self.startTime + seconds
def count(self):
if self.running == 1:
timeNow = MOD.secCounter()
return (timeNow - self.startTime)
else:
return -1
他们写下这条评论:
以下是有关如何使用此类的简单示例:
import timers
timerA = timers.timer(0)
timerA.start(15)
while 1:
if timerA.isexpired():
print 'timerA expired'
break
但我不知道如何在我的代码中多次使用它,因为我需要在我的代码中使用多个计时器,
我应该写 timerB = timers.timer(1)
timerB.start(1800)
while 1:
if timerB.isexpired():
print 'timerA expired'
break
任何帮助,请
答案 0 :(得分:2)
关闭 - timers.timer的参数是计时器首先应该计时的秒数。但每次调用timers.timer()时,都会得到一个新的计时器实例。
所以你的代码看起来更像是:
timerB = timers.timer(1800)
while 1:
if timerB.isexpired():
print 'timerA expired'
break
除了这是误导性的 - timerA和timerB是单独的计时器,因此timerB.isexpired()
不会告诉你有关timerA的任何信息。也许你的意思是读“timerB expired”?
我还建议反对如此迅速地进行民意调查timerB.isexpired()
。也许每次检查后都会睡一会儿?