我希望在ironpython中加载.net dll。
但是.net dll中的一个静态函数有一些Named和Optional Arguments。
喜欢,画(重量:w,高度:h,面积= 1)
我只能使用完整的参数吗?
答案 0 :(得分:6)
完全支持命名和可选参数。 .NET已经有很长一段时间用于VB.NET支持,因此IronPython从一开始就以同样的方式支持它们。新的C#语法映射到与旧VB支持相同的底层元数据。
为了调用你使用f(x = 42)这是Python的命名参数语法。对于可选参数,您可以将它们排除在外。在您的示例中,您可以执行绘制(体重,身高)并将区域保留。或者您可以将w / weight和height称为命名参数,并将Area保留。
IronPython寻找的底层.NET元数据是OptionalAttribute或DefaultParameterValueAttribute。对于可选,我们传递默认值(T),除非类型是对象,在这种情况下我们传递Missing.Value。这通常与反射调用这些API的方式相匹配。
答案 1 :(得分:0)
正如this SO question所说,IronPython不支持.NET的新命名参数(它使用命名参数来调用它来设置属性)。
对于可选项,如this post所述,
用于可选参数,例如 您是地址索引器的参数 可以使用Missing.Value来使用 默认值。
当然,from System.Reflection import Missing
。