On Aug 30, 6:18 am, Patrick Maupin <[EMAIL PROTECTED]> wrote: > On Aug 29, 4:24 am, Peter Otten <[EMAIL PROTECTED]> wrote: > > > > > A minimal example is > > > >>> class Complex(complex): > > > ... def __radd__(self, other): print "radd" > > ...>>> 1j + Complex() > > > 1j > > > versus > > > >>> class Int(int): > > > ... def __radd__(self, other): print "radd" > > ...>>> 1 + Int() > > > radd > > > I think the complex subclass should behave like the int subclass. > > To get an authoritative answer you should file a bug report. > > Hmm, good point. I shouldn't look at newsgroups when I'm too tired to > see the whole problem. > > According to the documentation > athttp://docs.python.org/ref/numeric-types.html: > > "Note: If the right operand's type is a subclass of the left operand's > type and that subclass provides the reflected method for the > operation, this method will be called before the left operand's non- > reflected method. This behavior allows subclasses to override their > ancestors' operations." > > I think this makes it pretty clear that the OP found a bug in how > complex works. (Before I read this note, I would have assumed that > the int() handling was broken, but it looks like a supportable design > decision. Probably whoever implemented it wasn't even thinking about > complex numbers, but for consistency, I would think they should be > made to work the same.) > > Regards, > Pat
Thanks for the comments. I have filed it as an issue. Regards Blair -- http://mail.python.org/mailman/listinfo/python-list