【问题标题】:Python Timer remaining timePython 定时器剩余时间
【发布时间】:2018-02-02 16:20:08
【问题描述】:

如何从 Python Timer 对象计算剩余时间。

timer = Timer(10, print, ("expiry"))
timer.start()
...

从这里,我如何找出计时器到期前的剩余时间?

【问题讨论】:

    标签: python timer


    【解决方案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不可子类化?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 2018-02-03
    • 1970-01-01
    相关资源
    最近更新 更多