我不是 Python 程序员,但我正在尝试使用 IronPython 和 VB.Net 制作一个简单的脚本。我已经走了很远,但现在我坚持通过引用传递参数。我需要能够将数据从 VB 端返回到参数列表中的 Python 端(因为 Python 返回元组,但 .Net 没有)。但是,此代码不起作用,我不知道为什么。
这是python代码:
def GetVoltages(voltages):
fixture.StartScan()
done=False
counter=0
while done == False:
fixture.GetNumDataPoints(num)
if num>=15:
done=True
else:
counter=counter+1
if counter>1000000:
break
if done == True:
fixture.GetDataPoints(num, voltages)
else:
log.WriteLine("Failed to read voltages.")
return done
buff = Array.CreateInstance(System.Double, 0)
if GetVoltages(buff):
log.WriteLine("Checking voltages.")
CheckVoltage(buff, 3, 22)
# do other stuff
fixture 是一个已定义的变量,并且该函数被正确调用,但 python 端的 num 和 voltages 永远不会改变。这是VB端的函数声明:
Public Function GetDataPoints(ByVal num As Integer, ByRef vals() As Double) As Boolean
Public Function GetNumDataPoints(ByRef num As Integer) As Boolean
我发现了一些旧页面,它们提供了一些提示,但我没有看到正确的答案是什么。