def run(a=1,b=2,c=3):
...
if __name__ =="main":
threading.Thread(target=run,args=vars(opt))#这里怎么把用户输入的参数传到线程run中?如果不用线程模式那可以这样传run(**vars(opt)),用线程时怎么传?
看了资料后发现应该这样写
threading.Thread(target=run, kwargs=vars(opt))#用kwargs,而不是args
args=(**vars(opt),)
args的参数必须是一个元组,你的函数不管有几个参数,都把它包到元组中传递