我正在使用multiprocessing.Pool的回调组件:
def foo(x):
err = []
return err
errors = []
res = pool.map_async(foo, mylist, callback=errors.extend)
print errors
我得到了:
[[]]
如果我在foo()内部向err追加测试错误,我明白了:
[['test']]
我在这里缺少什么想法?
为什么它不反映这种行为:
a = []
b = []
a.extend(b)
print a
结果:
[]
答案 0 :(得分:0)
我无法发表评论,所以我发了一个答案。 pool.map_async将返回列表,将其命名为Result。 你的回调函数适用于这个Result。在你的情况下,Result是[[err0],[err1],...],所以error.extend(Result)得到[[]]。 试试这个:
const randomArray = (length, max) => {
return Array(length).fill().map((el) =>{
return Math.round(Math.random() * max)
})
}
const largestNumber = (numbers) => {
return Math.max(...numbers)
}
largestNumber(randomArray(5, 500))