python apply函数 出错

class mt(threading.Thread):#多线程类用来调用函数CrawlInHost、CrawlOutHost
def __init__(self,func,args=[],name=''):
threading.Thread.__init__(self)
self.name=name
self.args=(self.name)
self.func=func

def run(self):#冲在run函数,调用线程中的函数func
apply(self.func,self.args)

#这是那个调用的函数的原型:
def letsCrawl(tname):
print tname
#这是开始调用
t=mt(func=letsCrawl,name='number %d thread'%i)

参数必须是tuple类型,self.args=(self.name,)
你的(self.name)和self.name是一样的,没有区别,为了表示你想构建一个tuple,必须在第一个参数后加个“,”。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-29
self.args=(self.name, )追问

why?^^

相似回答