正在开发一个简单的计时器功能,但撞墙了。有问题的代码是:
#!/usr/bin/python3
import threading
Timer = threading.Timer()
def hello():
print "hello, world"
t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
代码是https://docs.python.org/2/library/threading.html#timer-objects中代码的直接副本
由于函数hello
没有参数,我不理解错误输出:
File "timer_test.py", line 3, in <module>
Timer = threading.Timer()
File "C:\Python27\lib\threading.py", line 1047, in Timer
return _Timer(*args, **kwargs)
TypeError: __init__() takes at least 3 arguments (1 given)
Timer
除了时间本身和要执行的函数之外还需要另一个参数吗?不应该传递args / kwargs,因为函数hello
没有?我尝试传递任意参数,例如None
或[]
,但它没有改变任何内容。
我知道这可能是一个愚蠢的问题,但由于文档没有回答我,我在这里找不到答案我决定发布这个。 感谢您的时间/帮助
答案 0 :(得分:0)
这不是直接复制。它有一个额外的一行:
Timer = threading.Timer()
在这一行中,您尝试创建一个时间,但不要传递延迟和函数参数。
更多相关信息,如果可行,则使用计时器的对象覆盖类名Timer
,并尝试创建另一个计时器,但是来自实例,而不是来自类。那永远不会奏效。
删除该行,并完全按照文档中的说明进行操作。