我不明白为什么会发生这种情况,但我的线程只有在其父模块中运行时才会返回值
我的方法。我已经排除了SQL语句,但我100%确定它是有效的。
result
是一系列字典,因此它是一个单值变量
def _transits_data(self,zone_id, interval, queue):
while datetime.now() >= session_interval:
result = SQLConnector().query(statement, zone_id, interval, interval, fetch=True)
queue.put(result)
下一步我开始我的线程
def start(self, zone_id, interval):
queue = Queue()
self.transits_list =Thread(target=self._transits_data, args=(zone_id, interval, queue))
return queue.get()
所以如果我在同一个模块中运行它
if __name__ == '__main__':
transits_listener = TransitsListener()
result = transits_listener.start(zone_id, interval)
print(result)
我收到了预期的dict列表,但如果我将其导入另一个模块application.py
:
class Application
def __init__(self):
self.transits_listener = TransitsListener()
def run(self):
transits_list = self.transits_listener(zone_id, interval)
print(transits_list)
if __name__ == '__main__':
app = Application()
app.run()
我只收到一张空名单
目前没有回答
相关问题 更多 >
编程相关推荐