首页 > 解决方案 > python - 如何使用python多处理将输入变量传递给另一个函数?

问题描述

这是我试过的。我不完全确定该怎么做,所以这就是我所拥有的。我只是收到一条错误消息,提示“functiona() 需要 1 个位置参数,但给出了 9 个”有人可以帮忙吗?我对python相当陌生

import multiprocessing

def functiona(inputvariable):
    print(inputvariable)

def functionb():
    inputvariable = input('')

    processes = []

    for x in range(2):
        p = multiprocessing.Process(target=functiona, args=inputvariable)
        p.start()
        processes.append(p)

    for p in processes:
        p.join()

标签: pythonmultiprocessing

解决方案


问题是你的args论点Process()args应该是一个元组,而不是单个对象。如所写:

p = multiprocessing.Process(target=functiona, args=inputvariable)

它导致inputvariable被迭代为字符串的单个字符,这导致functiona()接收多个参数而不仅仅是一个。

您应该指定args为元组。由于您只有一个参数,因此您必须确保以逗号结尾,如下所示:

p = multiprocessing.Process(target=functiona, args=(inputvariable,))

推荐阅读