Python为导入的函数提供了args数

时间:2016-08-22 15:48:02

标签: python function arguments

我正在尝试为导入的函数提供参数 我有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",那么它可以正常工作,
有谁知道我能做什么?

2 个答案:

答案 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预计属于listtuple类型,因此您的案例中会出现错误。当您传递"John"时,它会以["J", "o", "h", "n"]传递,即chars的数组