.netdllをironpythonにロードしたいと思っています。
ただし、.net dllの静的関数の1つには、いくつかの名前付き引数とオプションの引数があります。
のように、Draw(weight:w、height:h、Area = 1)
完全な引数のみを使用できますか?
.netdllをironpythonにロードしたいと思っています。
ただし、.net dllの静的関数の1つには、いくつかの名前付き引数とオプションの引数があります。
のように、Draw(weight:w、height:h、Area = 1)
完全な引数のみを使用できますか?
名前付きおよびオプションのパラメーターは完全にサポートされています。.NETはVB.NETサポートのために長い間これらを持っていたので、IronPythonは最初から同じ方法でそれらをサポートしてきました。新しいC#構文は、古いVBサポートと同じ基本メタデータにマップされます。
呼び出しには、Pythonの名前付きパラメーター構文であるf(x = 42)を使用します。オプションのパラメータについては、それらを省略できます。あなたの例の場合、おそらくDraw(weight、height)を実行し、Areaを除外することができます。または、名前付きパラメータとしてw / weightとheightを呼び出し、Areaを省略できます。
IronPythonが検索する基になる.NETメタデータは、OptionalAttributeまたはDefaultParameterValueAttributeのいずれかです。オプションの場合、タイプがオブジェクトでない限り、default(T)を渡します。オブジェクトの場合は、Missing.Valueを渡します。これは通常、リフレクションがこれらのAPIを呼び出す方法とも一致します。