如何使用 python 多处理将输入变量传递到另一个函数?

-1 python multiprocessing

这就是我尝试过的。我不完全确定该怎么做,所以这就是我所拥有的。我刚刚收到一个错误,上面写着“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()
Run Code Online (Sandbox Code Playgroud)

sj9*_*126 6

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

p = multiprocessing.Process(target=functiona, args=inputvariable)
Run Code Online (Sandbox Code Playgroud)

它会导致inputvariable作为字符串的各个字符进行迭代,从而导致functiona()接收多个参数而不是仅一个。

您应该指定args为元组。由于您只有一个参数,因此必须确保在输入时添加一个逗号,如下所示:

p = multiprocessing.Process(target=functiona, args=(inputvariable,))
Run Code Online (Sandbox Code Playgroud)