小编use*_*331的帖子

Python sched.scheduler超过了最大递归深度

我最近开始学习Python,我正在制作的简单应用程序的一部分包括一个带有hh:mm:ss显示器的计时器,它在自己的线程中运行.

环顾网络,我找到了两种实现方法:

  1. 使用sched.scheduler
  2. 使用threading.Timer

我这样做的方式对于两种实现看起来都相似:

附表:

def tick(self, display, alarm_time):

    # Schedule this function to run every minute
    s = sched.scheduler(time.time, time.sleep)
    s.enter(1, 1, self.tick, ([display, alarm_time]))

    # Update the time
    self.updateTime(display)
Run Code Online (Sandbox Code Playgroud)

计时器:

def tick(self, display):

    # Schedule this function to run every second
    t = Timer(1, self.tick, (display,alarm_time))
    t.start()

    # Update the time
    self.updateTime(display)
Run Code Online (Sandbox Code Playgroud)
  1. 关于正确滴答的工作正常,但几分钟后会产生以下错误:RuntimeError:超出最大递归深度.我知道你可以手动增加最大递归级别,但这肯定不是必需的吗?

  2. 没有错误,但偶尔会跳秒,或者不规则地滴答.

有人可以指出我正确的方向如何正确地做到这一点?谢谢.

python timer clock scheduler

5
推荐指数
2
解决办法
2498
查看次数

标签 统计

clock ×1

python ×1

scheduler ×1

timer ×1