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调用的名称空间中已经存在其他类。