Python: получить несколько возвращаемых значений и предоставить несколько аргументов в файле executor.map объекта concurrent.futures.ProcessPoolExecutor () - PullRequest
0 голосов
/ 12 февраля 2019

Я новичок в концепции многопроцессорной обработки 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)

Может кто-нибудь предложить правильный способ сделать это?

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете использовать класс:

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

...