我希望在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
。