我有一个python类,其中有一个要运行多个线程的方法。
class OutageTool:
def main(self):
outages = [{
'var1' : 1,
'var2' : 2,
},
{
'var1' : 3,
'var2' : 4,
}]
for outage in outages:
t = threading.Thread(target=self.outage_thread, args=(outage))
t.start()
def outage_thread(self, outage):
"""
some code here
"""当我运行这段代码时,我得到了以下错误
TypeError: outage_thread() takes exactly 2 arguments (3 given)我是python的新手,如果有任何关于这里发生的事情的想法,我将不胜感激。
C
发布于 2013-05-27 21:00:02
您在创建Thread时忘记了一个,。
在python中,执行(5)将生成整数5,而执行(5,)将转换为元组,其中一个条目是整数5。
如果您将args=(outage)更改为args=(outage,),它应该会按预期工作。
发布于 2013-05-27 20:59:43
搞定
t = threading.Thread(target=self.outage_thread, args=(outage,))(注意outage之后的,(命令))。在您的例子中,args不是一个元组。
发布于 2013-05-27 21:00:12
我认为错误可能在于args=(停机)没有被认为是一个元组。
这个应该可以解决这个问题。
class OutageTool:
def main(self):
outages = [{
'var1' : 1,
'var2' : 2,
},
{
'var1' : 3,
'var2' : 4,
}]
for outage in outages:
t = threading.Thread(target=self.outage_thread, args=(outage,))
t.start()
def outage_thread(self, outage):
"""
some code here
"""https://stackoverflow.com/questions/16773693
复制相似问题