我有下面的函数,通常作为参数传递Vm
和Vp
,hoewever,在某些情况下,我还想添加一个输入参数anumpy.array
,称为Yin
。你知道吗
def solveTransmissionLineDistrbutedE(self,Vm,Vp,*,Yin=0):
在这种情况下,我在用Yin作为函数调用函数时遇到了一个问题
一个numpy.arry
像下面这个
ec_0_04 = numpy.array([
[0.00188453428035827 + 0.0124200286145695j],
[0.00188453428035827 + 0.0124200286145695j]
])
for yin in ec_0_04:
EC,C = pinsAsLine.solveTransmissionLineDistrbutedE(-1,-1,*yin)
然后,Python抱怨这个错误
EC,C = pinsAsLine.solveTransmissionLineDistrbutedE(-1,-1,numpy.array([0.00188453428035827 + 0.0124200286145695j]))
TypeError: solveTransmissionLineDistrbutedE() takes 3 positional arguments but 4 were given
我确实理解这个错误,Python看到一个三的函数有四个输入,但是我不知道如何正确地将数组作为输入传递给函数。你知道吗
有什么提示吗?你知道吗
提前谢谢
你误解了
*
的用法。你知道吗您这样声明您的方法:
这意味着您的函数将
self
作为第一个参数,Vm
和Vp
作为第二个和第三个参数。它们是位置参数。然后它将接受一个命名参数(或仅关键字参数):Yin
。你知道吗最后,您应该这样调用您的方法:
将整个数组作为参数传递。你知道吗
相关问题 更多 >
编程相关推荐