On Tue, Sep 22, 2009 at 5:12 PM, Mark Dickinson <dicki...@gmail.com> wrote: > - Exception to the previous item: if the left operand is an instance > of a built-in type or a new-style class, and the right operand is an > instance of a proper subclass of that type or class AND overrides the > base’s __rop__() method, the right operand’s __rop__() method is tried > before the left operand’s __op__() method.
The AND above (which I uppercased) is subtle but important. In the "x op y" case with y being of a subclass of the class of x, if there is no class in between x and y (excluding x, including y) that overrides the __rop__ method, then y,__rop__(x) is *not* tried before x.__op__(y). It's easy for other implementations to get this wrong. :) - Willem _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com