Python:获取多个返回值并在concurrent.futures.ProcessPoolExecutor()的executor.map中提供多个参数

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

我是Python多处理概念的新手。我试图调用函数magicFunction,它有多个参数,其中第一个是可迭代的,而所有其他都是不可迭代的。此外,它返回多个值,让我们说x, y, z

我想弄清楚如何在这里使用executor。这是我的方法,这显然是错误的。

def magicFunction(webElem, uid_list, ignoreTagsList):
    ..
    ..
    return x,y,z

with concurrent.futures.ProcessPoolExecutor() as executor:
    for webElem, x_val, y_val, z_val in zip(webElem_list, executor.map(magicFunction, webElem_list, uid_list, ignoreTagsList)):
    ..
    ..
    print("Values:", x_val, y_val, z_val)

有人可以建议正确的方法吗?

python-3.x python-multiprocessing threadpoolexecutor
1个回答
0
投票

你可以使用一个类:

class FunctionReturn:
    x = 0
    y = 0
    z = 0

def myFunction():
    output = FunctionReturn()
    output.x = 1
    output.y = 2
    output.z = 3
    return output

data = myFunction()
print(data.x , data.y , data.z)

这将打印1 2 3

© www.soinside.com 2019 - 2024. All rights reserved.