Python 定时器剩余时间
Posted
技术标签:
【中文标题】Python 定时器剩余时间【英文标题】:Python Timer remaining time 【发布时间】:2018-02-02 16:20:08 【问题描述】:如何从 Python Timer 对象计算剩余时间。
timer = Timer(10, print, ("expiry"))
timer.start()
...
从这里,我如何找出计时器到期前的剩余时间?
【问题讨论】:
【参考方案1】:只需在启动线程Timer时设置一个值
timer = Timer(10, print, ("expiry"))
....
start_time = time.time()
timer.start()
time.sleep(3)
....
print ("Running for : %s seconds"%(time.time()-start_time))
你总是可以创建自己的计时器类
class MyTimer(threading._Timer):
started_at = None
def start(self):
self.started_at = time.time()
threading._Timer.start(self)
def elapsed(self):
return time.time() - self.started_at
def remaining(self):
return self.interval - self.elapsed()
timer = MyTimer(10, print, ("expiry"))
timer.start()
for i in range(5):
time.sleep(1)
print (timer.remaining())
【讨论】:
这行得通。我希望 Timer 中有一个属性可以使用,而无需自己保存开始时间。 为什么你从 _Timer 继承而不是从 Timer 继承?这是pythonic的东西,还是Timer不可子类化?以上是关于Python 定时器剩余时间的主要内容,如果未能解决你的问题,请参考以下文章