Python错误检查错误?
我有以下脚本:Python错误检查错误?,python,compiler-errors,pool,Python,Compiler Errors,Pool,我有以下脚本: from multiprocessing import Lock, Pool def worker(): r = other.work() return r def main(): pool = Pool(4) result = pool.apply_sync(worker,()) result.wait() 在worker()中,我从另一个模块“other”调用函数work(),但是,我忘记导入模块“other”。但是当我运行这个p
from multiprocessing import Lock, Pool
def worker():
r = other.work()
return r
def main():
pool = Pool(4)
result = pool.apply_sync(worker,())
result.wait()
在worker()中,我从另一个模块“other”调用函数work(),但是,我忘记导入模块“other”。但是当我运行这个python脚本时,python没有报告任何异常。这是错误吗?在生成的进程中引发的任何错误都将保持沉默,直到您实际检索结果为止
from multiprocessing import Lock, Pool
def worker():
r = other.work()
return r
def main():
pool = Pool(4)
# note: this is apply_async, not apply_sync
result = pool.apply_async(worker,())
result.wait()
# See here
actual_result = result.get()
这将提高:
NameError: global name 'other' is not defined
您所命名的
result
是一个multiprocessing.pool.ApplyResult
对象,它更像是一个返回值的承诺,而不是返回值本身。您的代码段在第9行包含一个错误,在空集合中有一个逗号:result=pool.apply_sync(worker,(,)异步调用可能正在抑制异常的输出。为了测试这一点,您可以编写一个引发异常的函数,并查看发生了什么。另一种可能性是python调用的名称空间中已经存在其他类。