2010-08-02 45 views

回答

5

完全支持命名参数和可选参数。 .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。

-1

由于this SO question表示,IronPython不支持.NET的新命名参数(它使用命名参数来调用构造函数来设置属性)。

对于可选的,如this post说,

可选参数,如 参数的地址索引,你 可以使用Missing.Value使用 默认。

之后,当然还有from System.Reflection import Missing

相关问题