53

我正在尝试使用以下方法在 Python 中运行一些简单的线程:

t1 = threading.Thread(analysis("samplequery"))
t1.start()

other code runs in here

t1.join()

不幸的是,我收到了错误:

“AssertionError:组参数现在必须为无”

我以前从未在 Python 中实现过线程,所以我有点不确定出了什么问题。有谁知道问题是什么?

我不确定它是否相关,但分析是从另一个文件导入的方法。

我也有一个后续查询。分析返回一个字典,我将如何分配它以在原始方法中使用?

谢谢

4

2 回答 2

72

您想指定target关键字参数:

t1 = threading.Thread(target=analysis("samplequery"))

您可能打算制作analysis运行目标,但启动时'samplequery的参数:

t1 = threading.Thread(target=analysis, args=("samplequery",))

第一个参数Thread()是实参group,目前只接受None作为实参。

threading.Thread()文档中:

此构造函数应始终使用关键字参数调用。论据是:

  • 应该是None;为实现类时的未来扩展而保留ThreadGroup
  • target是方法调用的可调用对象run()。默认为None,表示不调用任何内容。
于 2013-03-11T22:37:52.140 回答
7

您需要提供target属性:

t1 = threading.Thread(target = analysis, args = ('samplequery',))
于 2013-03-11T22:38:24.943 回答