我有这门课:
from threading import Thread
import time
class Timer(Thread):
def __init__(self, interval, function, *args, **kwargs):
Thread.__init__()
self.interval = interval
self.function = function
self.args = args
self.kwargs = kwargs
self.start()
def run(self):
time.sleep(self.interval)
return self.function(*self.args, **self.kwargs)
Run Code Online (Sandbox Code Playgroud)
我用这个脚本调用它:
import timer
def hello():
print \"hello, world
t = timer.Timer(1.0, hello)
t.run()
Run Code Online (Sandbox Code Playgroud)
并得到此错误,我无法弄清楚原因: unbound method __init__() must be called with instance as first argument
tru*_*ppo 16
你在做:
Thread.__init__()
Run Code Online (Sandbox Code Playgroud)
使用:
Thread.__init__(self)
Run Code Online (Sandbox Code Playgroud)
或者说,使用 super()
这是SO的常见问题,但简而言之,答案就是你调用超类的构造函数的方式如下:
super(Timer,self).__init__()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26961 次 |
最近记录: |