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 定时器剩余时间的主要内容,如果未能解决你的问题,请参考以下文章

jQuery计时器写剩余时间

创建一个倒计时器,为列表中的每个值每5秒打印一次剩余时间

考试剩余时间倒计时

剩余定时任务第四关练习题vim快捷键补充

TCP坚持定时器

剩余定时任务第四关练习题vim快捷键补充