我收到以下错误
ERROR:
tt.start()
TypeError: 'int' object is not callable
我子线程化了线程。线程只是跟踪时间,当经过的时间与传入的任意值匹配时,它会将匹配键的值从输入字典添加到队列中。另一个线程将定期检查队列,查找工作和进程,因为它找到任何工作和进程。
以下是抛出错误的代码:
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()
调用start时为什么会收到错误?这是在运行Windows 7的Python 3.3.3中。
答案 0 :(得分:5)
在以下行中,代码用tt.start
对象覆盖int
方法(ceiling
的返回值)。
self.start = ceiling(time.time())
使用其他名称重命名self.start
,例如self.start_time
以避免覆盖。