Timer对象返回参数Nº错误

时间:2017-09-30 22:29:39

标签: python python-3.x timer compiler-errors

正在开发一个简单的计时器功能,但撞墙了。有问题的代码是:

#!/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[],但它没有改变任何内容。

我知道这可能是一个愚蠢的问题,但由于文档没有回答我,我在这里找不到答案我决定发布这个。 感谢您的时间/帮助

1 个答案:

答案 0 :(得分:0)

这不是直接复制。它有一个额外的一行:

Timer = threading.Timer()

在这一行中,您尝试创建一个时间,但不要传递延迟和函数参数。

更多相关信息,如果可行,则使用计时器的对象覆盖类名Timer,并尝试创建另一个计时器,但是来自实例,而不是来自类。那永远不会奏效。

删除该行,并完全按照文档中的说明进行操作。