Hey guys!

Just curious: is there a way to implement in the .NET class something that
maps to the ** operator?

I've tried the other way: calling into a Python function that works as a
factory of proxy objects. These proxies overload the arithmetic operators
and delegates everything to the real (.NET) class. The user is given access
to the proxies in the expressions instead of the real objects. It works,
but performance suffers. (My performance target right now is 20.000
expression evaluations / second).

Thank you very much for the attention!

Best regards
Mello

On Fri, Feb 24, 2012 at 5:17 PM, Jeff Hardy <jdha...@gmail.com> wrote:

> On Fri, Feb 24, 2012 at 12:00 PM, Cesar Mello <cme...@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
>
_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
http://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to