[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
- Previous message: [Python-Dev] operator precedence of __eq__, __ne__, etc, if both object have implementations
- Next message: [Python-Dev] operator precedence of __eq__, __ne__, etc, if both object have implementations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] operator precedence of __eq__, __ne__, etc, if both object have implementations
- Next message: [Python-Dev] operator precedence of __eq__, __ne__, etc, if both object have implementations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]