我希望在ironpython中加载.net dll。我可以在ironpython中使用命名参数和可选参数
但.net dll中的一个静态函数有一些命名参数和可选参数。
像,画(重量:W,高度:H,面积= 1)
只有我可以使用完整的参数呢?
我希望在ironpython中加载.net dll。我可以在ironpython中使用命名参数和可选参数
但.net dll中的一个静态函数有一些命名参数和可选参数。
像,画(重量:W,高度:H,面积= 1)
只有我可以使用完整的参数呢?
完全支持命名参数和可选参数。 .NET已经有了很长时间的VB.NET支持,所以IronPython从一开始就支持同样的方式去做。新的C#语法映射到与旧的VB支持相同的底层元数据。
用于调用您使用Python的命名参数语法f(x = 42)。对于可选参数,您可以将其忽略。在你的例子中,你可以做Draw(weight,height)并把Area放开。或者您可以将w/weight和height作为命名参数调用并将Area放弃。
IronPython查找的底层.NET元数据是OptionalAttribute或DefaultParameterValueAttribute。对于可选,我们传入默认(T),除非类型是对象,在这种情况下,我们传入Missing.Value。这通常匹配反射如何调用这些API。
由于this SO question表示,IronPython不支持.NET的新命名参数(它使用命名参数来调用构造函数来设置属性)。
对于可选的,如this post说,
可选参数,如 参数的地址索引,你 可以使用Missing.Value使用 默认。
之后,当然还有from System.Reflection import Missing
。