Operator overloading for managed objects

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Operator overloading for managed objects

Oleksii Bidiuk
Hi,

did anybody have experience with using overloaded operators for managed objects? I have a class that have e.g. the operator+ overloaded in C#, but that does not seem to be picked up from the Python side. I have tried to add overloading using the setattr(MyType, "name", method_name), but it only seem to work for the native Python objects and not for the managed objects. In both cases I get "TypeError: unsupported operand type(s) for +: 'MyType' and 'MyType'".

Thanks in advance!

--
oleksii

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet
Reply | Threaded
Open this post in threaded view
|

Re: Operator overloading for managed objects

Oleksii Bidiuk
Hi All,

I am sorry for repeating the question, but I would like to make sure I am not overlooking something here. Is this a known limitation that the operators overloaded in C# are not working from CPython? So far I had written CPython wrappers for the .NET objects that provide proper operators implementation which is then redirected to explicit C# calls. While this provides 'native' CPython experience and gives additional control over the API exposed to a script (to some extend), it results in extra work, which is mostly a problem on the long term when both C# and Python equivalents have to be maintained in parallel.

did anybody have experience with using overloaded operators for managed objects? I have a class that have e.g. the operator+ overloaded in C#, but that does not seem to be picked up from the Python side. I have tried to add overloading using the setattr(MyType, "name", method_name), but it only seem to work for the native Python objects and not for the managed objects. In both cases I get "TypeError: unsupported operand type(s) for +: 'MyType' and 'MyType'".


Thanks in advance!
--
oleksii

_________________________________________________
Python.NET mailing list - [hidden email]
http://mail.python.org/mailman/listinfo/pythondotnet