我有一个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
答案 0 :(得分:2)
成功
t = threading.Thread(target=self.outage_thread, args=(outage,))
(注意outage
之后的,(命令))。在你的情况下,args不是一个元组。
答案 1 :(得分:1)
您在,
的创作中忘记了Thread
。
在python中执行(5)
将导致整数5
,而执行(5,)
会变成元组,其中一个条目是整数{{ 1}}。
如果您将5
更改为args=(outage)
,则应该按预期工作。
答案 2 :(得分:1)
我认为错误可能在于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
"""