Was: Is this an Bug in python 2.3?? Reflective relational operators
dooms at info.LESS.ucl.SPAM.ac.be
Tue Jun 15 17:08:30 CEST 2004
> Hello Everybody...
> Let me try to explain what do I mean by "ordering importance".
> In our application a expression 100>=x reads as 100 is an upper bound
> on x. Mathematically it is same as saying x<=100 which also bounds x
> by 100. But in modelling, the user wants to preserve the order in
> which he has written the expression.
> If the left side of an operand is an immutable type then this ordering
> is no longer preserved, even if both the methods are implemented(i.e
> __le__ and __ge__).
No, as far as I understand the doc, if the left side does not support
comparing to your instance on the left then your instance's reversed
operator method is called.
> __radd__ allows you to have an immutable type on the left side. An
> __rge__ method would provide the same functionality for relational
> Is there a way to obtain this behavior with current syntax?
I far as I know, there is no __rge__ and no possible way to detect if
ian op was called from either syntax.
The comparison operators should be used in cases where the "reflective"
behaviour is sound. I beleive they should not be used for other things
than comparing instances for witch there is a complete order (many
others will disagree).
More information about the Python-list