Python函数通过*args传递numpy数组出现参数解包报错求助
问题根因
- 函数定义中
*args的作用是将传入的所有位置参数打包为一个元组存入args变量。你直接将args传入other_func时,本质只传递了1个元组类型的参数,无法匹配other_func需要2个位置参数的定义,因此触发参数缺失的报错。
修复方案
仅需在调用other_func时对args执行位置解包操作即可,修改后的my_func代码如下:
def my_func(*args): c = other_func(*args) return c
效果说明
修改后调用c = my_func(a, b)时,args存储的是(a, b)元组,*args会将元组内的元素拆分为两个独立的位置参数传入other_func,直接得到两个numpy数组逐元素相加的预期结果[[3.], [7.]],无需额外引入循环,不会产生额外性能损耗。
内容的提问来源于stack exchange,提问作者narutoArea51
相关产品推荐
相关产品推荐

