我收到以下错误
错误:
tt.start() TypeError: 'int' object is not callable
我分类了线程。线程简单地跟踪时间,当经过的时间匹配传入的任意值时,它将从input字典中将匹配关键字的值添加到队列中。 另一个线程会定期检查队列,find工作和进程。
这是引发错误的代码:
class TimerQueue(threading.Thread): def __init__(self, qyoo, kwargs): threading.Thread.__init__(self) self.queue = qyoo self.work = kwargs self.start = ceiling(time.time()) self.times = kwargs.keys() def run(self): while True: for t in self.times: if ceiling(time.time()) - self.start == t: logger.debug("adding {} to the queue".format(self.work[t])) self.queue.put(self.work[t]) time.sleep(1) if __name__ == "__main__": input_queue = queue.Queue() tt = TimerQueue(input_queue, time_url_dict) tt.start()
为什么在调用开始时收到错误? 这是在运行Windows 7的Python 3.3.3中。
在下面一行中,代码用int
对象( ceiling
的返回值)覆盖tt.start
方法。
self.start = ceiling(time.time())
用其他名称(例如self.start_time
重命名self.start
以避免覆盖。