[Ironpython-users] Implicit conversion of objects to float

Jeff Hardy jdhardy at gmail.com
Fri Feb 24 21:17:33 CET 2012


On Fri, Feb 24, 2012 at 12:00 PM, Cesar Mello <cmello at gmail.com> wrote:
> Thank you very much for the quick response Jeff!
>
> First, let me clarify I am a Python newbie, so my assumptions about Python
> may be all wrong.
>
> I had tried __float__ in a Python object, but it does not work implicitly
> inside expressions (and I think that's the correct behavior). You still have
> to use float(a) for the conversion to be used.
>
> Now I implemented the C# implicit conversion to double() and I get the same
> behavior (it works if I use float(a) in the expression but if I use a * 5.0
> for example I get the error: "unsupported operand type(s) for *: 'DataValue'
> and 'float'.

Ah, you missed this first part: you'll need to overload the arithmetic
operators for your objects.

Python: Define __add__, __sub__, etc.
(http://docs.python.org/reference/datamodel.html#object.__add__)
C#: Define operator+, operator-, etc.
(http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx)

- Jeff


More information about the Ironpython-users mailing list