python - 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()
解决方案
问题是你的args
论点Process()
。args
应该是一个元组,而不是单个对象。如所写:
p = multiprocessing.Process(target=functiona, args=inputvariable)
它导致inputvariable
被迭代为字符串的单个字符,这导致functiona()
接收多个参数而不仅仅是一个。
您应该指定args
为元组。由于您只有一个参数,因此您必须确保以逗号结尾,如下所示:
p = multiprocessing.Process(target=functiona, args=(inputvariable,))
推荐阅读
- html - 发送 API 数据和图像,但始终为空
- mysql - ERROR 2068 (HY000): LOAD DATA LOCAL INFILE 文件请求因访问限制而被拒绝
- bootstrap-4 - Bootstrap 4 响应列
- javascript - 在 React 中使用无线电的正确方法是什么?一旦选中,按钮就会被冻结
- python - 循环、if 语句和 append() 的数据框
- go - 切片可以访问另一个超出范围的切片,但索引超出范围会导致恐慌
- slack - Slack Conversations API conversations.info “channel_not_found”
- r - 使用分隔符向量拆分字符对象
- excel - 使用 RC[-1] 单元格的相关数据验证公式
- android - 如何在本机反应中添加firebase电话号码身份验证?