我正在尝试为导入的函数提供参数
我有base.py
:
import sc1 #import sc1.py
from threading import Thread
Thread(target=sc1.main,args="John").start()
sc1.py
中的一个函数:
def main(name):
print "Hello ",name
说
TypeError:main()只取1个参数(给定4个)
如果我只给一个args="J"
,那么它可以正常工作,
有谁知道我能做什么?
答案 0 :(得分:4)
你想传递一个args元组:
Thread(target=sc1.main,args=("John",)).start()
在您的情况下,由于str
是可迭代的,Thread
正在尝试解包"J" "o", "h", "n"
作为参数,而不是将整个事物作为原子单位传递。
答案 1 :(得分:2)
将Thread
称为:
Thread(target=sc1.main,args=["John"]).start()
<强>阐释:强>
由于args
预计属于list
或tuple
类型,因此您的案例中会出现错误。当您传递"John"
时,它会以["J", "o", "h", "n"]
传递,即chars
的数组