我有一个C#function()的库(.dll),我想从IronPython中调用它。这里显示的一个例子 - CMD_Handshake() - 在a中定义,不带参数,并返回一个布尔值...
正是如此,
public bool CMD_Handshake()
{
.
.
return (Send(out b_handshake_code));
}
[来自IronPython]
clr.AddReferenceToFileAndPath()成功添加了.dll引用。
已成功导入。 该类已成功导入。 CMD_Handshake()被认为是该类的方法 "应用"是该类的实例化。
但是:当我调用该函数时,我从Python收到以下错误消息:
App.CMD_Handshake() Traceback(最近一次调用最后一次): 文件"",第1行,in TypeError:CMD_Handshake()只取1个参数(给定0)
(我觉得我好......所以...关闭。)
答案 0 :(得分:1)
问题是bool CMD_Handshake()
是一个实例方法而不是静态方法。这意味着您应该创建App
的实例并在其上调用方法:
app = App()
app.CMD_Handshake()
TypeError:CMD_Handshake()只取1个参数(0给定)
此错误是由于您将实例方法作为静态方法调用,因此它希望 App
的实例作为其第一个参数。