Python错误检查错误?

问题描述:

我有以下脚本:Python错误检查错误?

from multiprocessing import Lock, Pool 

def worker(): 
    r = other.work() 
    return r 

def main(): 
    pool = Pool(4) 
    result = pool.apply_sync(worker,()) 
    result.wait() 

工人(),我从另一个调用模块 '等' 功能工作(),但是,我忘了导入模块“其他'。但是当我运行这个python脚本时,python没有报告任何异常。这是一个错误?

+0

您的代码片段在第9行中包含空集内的逗号错误:result = pool.apply_sync(worker,(,)) –

+0

异步调用可能会抑制异常的输出。为了测试这个,你可以写一个引发异常的函数,看看会发生什么。另一种可能是在python调用的名称空间内已经有一些类。 – aplassard

在生成的进程中引发的任何错误将保持沉默,直到您实际检索结果为止。

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 

你命名什么resultmultiprocessing.pool.ApplyResult对象,它更像是一个返回值的承诺,不是一个返回值本身。