[Ironpython-users] Why does this happen?

Slide slide.o.mix at gmail.com
Fri Mar 30 05:48:47 CEST 2012


Is Dino on vacation? He usually has good answers for these sorts of
things :-) I still can't get the callsite to end up calling __cmp__
like List.sort does. I'm not sure why that is the case. It looks like
even the Python version of bisect has a similar issue though (it never
calls __cmp__ either), so I think there is a bug somewhere.

On Sat, Mar 24, 2012 at 8:51 PM, Slide <slide.o.mix at gmail.com> wrote:
>
> I am implementing a module in C#. This module does some comparison operations. One of the tests for this module has something like the following:
>
> class CmpErr:
>     def __cmp__(self, other):
>         raise ZeroDivisionError
>
> x = [CmpErr(), CmpErr(), CmpErr()]
> cSharpMethod(x)
>
> Inside cSharpMethod is when I do the comparison. The way I am doing the comparison is taken from how its done in List.cs
>
> IComparer comparer = PythonContext.GetContext(context).GetComparer(null, GetComparisonType(context, list));
>
> Then I call comparer.Compare on the two items. In List.sort, this eventually calls the __cmp__ method if I try adding a call to x.sort() instead of cSharpMethod, but from inside cSharpMethod, __cmp__ is never called and I can't figure out why.
>
> Any ideas on why this might be occuring?
>
> Thanks,
>
> slide
>
> --
> Website: http://earl-of-code.com




--
Website: http://earl-of-code.com


More information about the Ironpython-users mailing list