Python中线程时的断言错误
我正在尝试使用以下方法在Python中运行一些简单的线程:Python中线程时的断言错误,python,multithreading,Python,Multithreading,我正在尝试使用以下方法在Python中运行一些简单的线程: t1 = threading.Thread(analysis("samplequery")) t1.start() other code runs in here t1.join() 不幸的是,我得到了一个错误: “AssertionError:组参数目前必须为none” 我以前从未在Python中实现过线程,所以我有点不确定到底出了什么问题。有人知道问题出在哪里吗 我不确定它是否相关,但分析是从另一个文件导入的方法 我还有一个后
t1 = threading.Thread(analysis("samplequery"))
t1.start()
other code runs in here
t1.join()
不幸的是,我得到了一个错误:
“AssertionError:组参数目前必须为none”
我以前从未在Python中实现过线程,所以我有点不确定到底出了什么问题。有人知道问题出在哪里吗
我不确定它是否相关,但分析是从另一个文件导入的方法
我还有一个后续问题。分析返回一个字典,我将如何分配它以在原始方法中使用
谢谢您想指定
目标
关键字参数:
t1 = threading.Thread(target=analysis("samplequery"))
您可能打算将analysis
作为运行目标,但是'samplequery
在启动时作为参数:
Thread()
的第一个参数是group
参数,它当前只接受None
作为参数
从:
应始终使用关键字参数调用此构造函数。论点如下:
- 组应为
;保留供将来在实现None
类时扩展ThreadGroup
- target是
方法调用的可调用对象。默认为run()
,表示不调用任何内容None
您需要提供
target
属性:
t1 = threading.Thread(target = analysis, args = ('samplequery',))
这仍然会将
分析的结果
传递给线程构造函数,这是错误的,除非该函数返回一个可调用的。@g.d.d.c:是的,正在进行此操作。:-)没问题,只是确定一下。:)这似乎解决了问题,谢谢!但是,我仍然不完全确定如何访问字典?@Incredidave:您需要在线程(主线程和子线程)之间进行通信,可能需要使用队列;请参阅和所有优秀的线程和python教程。由于位置arg不能位于关键字arg之后,因此还必须提供args
属性。
t1 = threading.Thread(target = analysis, args = ('samplequery',))