无法将数组参数传递给线程

时间:2019-09-08 12:16:54

标签: python multithreading

我有一个if循环,它调用一个线程并传递数组command。看起来像这样:

from Threading import Thread

def myfunction(command):
   print(command)

while True
   command = input()
   if command="1":
      t = Thread(target=myfunction, args=(command, ))
      t.start()
      t.daemon()

但是,它告诉我我已经通过了bool并抛出错误

TypeError: 'bool' object is not callable

我也尝试过将command作为字符串传递,但是出现相同的错误。

2 个答案:

答案 0 :(得分:1)

此代码中的几个问题:

  • Threading应该是threading
  • while True应该是while True:
  • if command = "1"(分配)应为if command == "1"(比较)

而且,问题中的错误原因:

Thread.daemon不是函数。这是一个返回布尔值的属性,因此t.daemon()导致了bool is not callable错误。

我认为您打算将其设置为True,并且必须在调用.start之前完成:

t.daemon = True
t.start()

最好在初始化期间进行设置:

t = Thread(target=myfunction, args=(command, ), daemon=True)

答案 1 :(得分:-1)

您的条件实际上不是条件,而是一个使用=运算符的赋值。它必须是一个相等性检查==

if command == "1":