You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过同一队列同时发送多数据项适配*args输入?

问题解决方法

你的代码核心问题是queue.Queue.put()仅支持单次放入一个元素,直接传入两个数组会导致参数错误。只需将两个数据打包成容器(比如元组)存入队列,就能实现同时传递两个数据项的需求。

修正后的代码

import numpy as np
import queue

def set_data(*data):
    first, second = data
    print(first, second)

q = queue.Queue()
array1, array2 = np.zeros((10, 3), dtype=float), np.zeros((10, 3), dtype=float)

# 将两个数组打包成元组放入队列
q.put( (array1, array2) )
# 取出时直接解包元组得到两个数据
c, v = q.get()

set_data(c, v)

补充说明

  • queue.Queue.put(item, block=True, timeout=None)的第一个参数item是要存入队列的单个元素,所以必须把多个数据打包成元组、列表等容器作为item传入。
  • 取出队列元素后,通过解包操作c, v = q.get()可以直接获取两个数组,再传递给支持*args的set_data函数完全适配——*args会自动把传入的多个参数打包成元组,和函数内部的解包逻辑匹配。

内容的提问来源于stack exchange,提问作者thatoneguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 22:27:29