2010-08-02 5 views

답변

5

명명 된 매개 변수와 선택적 매개 변수가 완전히 지원됩니다. .NET은 VB.NET 지원을 위해 오랫동안 이것을 가지고 있었기 때문에 IronPython은 처음부터 같은 방식으로 그들을 지원했습니다. 새로운 C# 구문은 이전 VB 지원과 동일한 기본 메타 데이터에 매핑됩니다.

파이썬의 매개 변수 구문 인 f (x = 42)를 사용하면됩니다. 선택적 매개 변수의 경우 그냥두면됩니다. 귀하의 예제에서는 Draw (weight, height)를하고 Area를 남겨 둘 수 있습니다. 또는 명명 된 매개 변수로 w/weight 및 height를 호출하고 Area를 종료 할 수 있습니다.

IronPython에서 찾을 기본 .NET 메타 데이터는 OptionalAttribute 또는 DefaultParameterValueAttribute입니다. 옵션의 경우 유형이 객체 인 경우를 제외하고는 default (T)로 전달합니다.이 경우에는 Missing.Value를 전달합니다. 이는 일반적으로 리플렉션이 이러한 API를 호출하는 방법과도 일치합니다.

-1

this SO question에 따르면 IronPython에서는 .NET의 새로운 명명 된 인수가 지원되지 않습니다. 대신 IronPython에서는 명명 된 인수를 사용하여 속성을 설정하는 대신 생성자를 사용합니다. this post 말한대로 선택 항목에 대한

, 선택적 매개 변수에 대한

, 주소 인덱서에 인수처럼, 당신 은 기본값을 사용하는 Missing.Value를 사용할 수 있습니다.

물론, from System.Reflection import Missing.

관련 문제