[Python-Dev] operator precedence of eq, ne, etc, if both object have implementations (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Wed Sep 23 14:09:13 CEST 2009


Greg Ewing wrote:

Willem Broekema wrote:

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). How does this work at the C typeslot level, where there are no rop methods?

The interpreter doesn't promise to call those slots with "self" first - self will be the second argument in the "rop" case.

See binary_op1() in abstract.c for the gory details (I had to go look it up myself in order to rediscover how it worked).

Cheers, Nick.

-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia



More information about the Python-Dev mailing list