假设我有一个清单:
a=['hello.com','ok.com']
我有两个功能:
def f0(id):
try:
model.objects.get(links=id)
except:
model(modelfield=id).save()
def f1(request):
for i in a:
t1=thread.Thread(target=f0,args=(i))
t1.start()
虽然我尝试在我的服务器上运行它,但它给了我错误。
TypeError: f0() takes 1 positional argument but 9 were given
请告诉我这是什么问题。
答案 0 :(得分:4)
您传递的是git show HEAD:file/path # ours
git show MERGE_HEAD:file/path # theirs
值的单个字符串:
args
这不是一个元组,这是一个只包含args=(i)
的分组表达式,一个包含9个独立元素(单字符串)的迭代。
添加逗号;元组由逗号而不是括号组成(尽管你需要使用括号来消除调用中元组与其他参数的歧义):
'hello.com'
或者如果您发现混淆,请使用列表:
args=(i,)
答案 1 :(得分:0)
在'args =(i)'中,(i)不是元组。 通过追加将(i)转换为元组,因此正确的陈述将是: T1 = thread.Thread(目标= F0,ARGS =(I,))