name 'list2_array' 即使在使用 multiprocessing.Array() 时也未定义

问题描述 投票:0回答:0

问题

我试图对需要共享数组的任务使用多处理,当我在使用 multiprocessing.Array() 之后遇到此错误时: name 'list2_array' 未定义

这是复制它的简化方法:

from multiprocessing import Pool, Array
from ctypes import c_char

def func(num):
    if num in list2_array:
        return num
    else:
        return num + b"Not Found"

if __name__ == "__main__":
    my_list = [b"1", b"2", b"4", b"8"]
    list2 = [b"1", b"4"]

    with Pool() as pool:
        list2_array = Array(c_char, list2)
        results = pool.map(func, my_list)

    print(results)

期待

在示例中,我尝试使用多处理打印 my_listlist2 中的所有元素,预期结果是:

[b'1', b'2 Not Found', b'4', b'8 Not Found']

但是引发了 NameError。

提前致谢!

python multiprocessing python-multiprocessing nameerror
© www.soinside.com 2019 - 2024. All rights reserved.