2
IronPython에서 DSL을 작성했습니다. C#에서 연산자를 오버로딩하고 을 파이썬으로 사용하면 할당 (=
) 연산자를 사용할 때까지 정상적으로 작동합니다.IronPython C# 암시 적 연산자가 파이썬에서 작동하지 않습니다.
암시 적 캐스트 오버로드를 사용하면 C# 측에서 문제가 해결되지만 파이썬에서는 작동하지 않습니다.
이 오류 재현 최소한의 예입니다 : 다음
class FloatValue
{
public FloatValue(float value)
{
this.value = value;
}
public static implicit operator FloatValue(float value)
{
return new FloatValue(value);
}
public float value;
}
을 나는 실행 :
FloatValue value = 5.0f // It works!!!
하지만 파이썬 :
# value is already an instance of FloatValue, it comes from somewhere. It's considered
# an immutable value, so there is no problem with generating a new instance.
value = 5.0 # Assigns the value, but does not work :(
나는 다음과 같은 예외가 :
Expected FloatValue, got float
어떻게 작동합니까?