带线程的 Python 计时器

Posted

技术标签:

【中文标题】带线程的 Python 计时器【英文标题】:Python timer with threading 【发布时间】:2017-03-05 10:28:14 【问题描述】:

我想创建一个简单的计时器脚本来将它与我的电报机器人一起使用,但有些东西并没有像我想要的那样工作。代码如下:

#!/usr/bin/python
from threading import Timer


class Timer:
  def __init__(self, router):
    self.routes = [
            ("^/timer\s(?P<time>[^$]+)$", self.main),
            ]

  def timer_end(self):
    print 'Timer End'

  def main(self, message, match):
     Timer(5, self.timer_end, ()).start()

我总是收到这个错误:

TypeError: __init__() takes exactly 2 arguments (4 given)

如果有人可以提供帮助,那就太好了。 提前致谢!

【问题讨论】:

您导入 Timer,然后创建一个覆盖 Timer 的类。也许您应该只“导入线程”然后使用“threading.Timer”来区分两者? 糟糕,我自己也注意到了。非常感谢! 【参考方案1】:

正如@swstephe 在评论中提到的那样:

您导入 Timer,然后创建一个覆盖 Timer 的类。也许您应该只“导入线程”然后使用“threading.Timer”来区分两者?

【讨论】:

以上是关于带线程的 Python 计时器的主要内容,如果未能解决你的问题,请参考以下文章

带定时器的 C++ 多线程编程

Python 线程定时器 Timer

121 Python程序中的线程操作-线程定时器

Python开发笔记:单线程下执行多个定时器

一个带微秒计时器的时钟

Python Qt GUI设计:QTimer计时器类QThread多线程类和事件处理类(基础篇—8)