在Python中使用线程时出现AssertionError

60 投票
2 回答
88646 浏览
提问于 2025-04-17 18:44

我正在尝试在Python中运行一些简单的线程操作,使用的是:

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

other code runs in here

t1.join()

但是我遇到了一个错误:

"AssertionError: group argument must be none for now"

我之前从来没有在Python中实现过线程,所以我有点不确定问题出在哪里。有没有人知道这是怎么回事?

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

我还有一个后续问题。分析返回的是一个字典,我该如何将它赋值以便在原来的方法中使用呢?

谢谢

2 个回答

9

你需要提供 target 属性:

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

你需要指定 target 这个关键字参数:

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

你可能是想把 analysis 作为运行的目标,但 'samplequery 是在启动时的参数:

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

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

根据 threading.Thread() 的文档

这个构造函数应该始终使用关键字参数来调用。参数包括:

  • group 应该是 None;这个参数是为将来扩展保留的,当实现 ThreadGroup 类时会用到。
  • target 是要通过 run() 方法调用的可调用对象。默认值是 None,这意味着什么都不会被调用。

撰写回答