Thomas Rachel wrote:
> Am 07.04.2012 14:23 schrieb andrew cooke:
>
>> class IntVar(object):
>>
>> def __init__(self, value=None):
>> if value is not None: value = int(value)
>> self.value = value
>>
>> def setter(self):
>> def wrapper(stream_in, thunk):
>> self.value = thunk()
>> return self.value
>> return wrapper
>>
>> def __int__(self):
>> return self.value
>>
>> def __lt__(self, other):
>> return self.value< other
>>
>> def __eq__(self, other):
>> return self.value == other
>>
>> def __hash__(self):
>> return hash(self.value)
>
>> so what am i missing?
>
> If I don't confuse things, I think you are missing a __gt__() in your
> IntVar() class.
>
> This is because first, a '2 < three' is tried with 2.__lt__(three). As
> this fails due to the used types, it is reversed: 'three > 2' is
> equivalent. As your three doesn't have a __gt__(), three.__gt__(2) fails
> as well.
Practically, yes. Just that that's not what the documentation says. Looks
like Python no longer tries to cobble together missing relations based on
the "usual" properties of ordering.
Mel.
--
http://mail.python.org/mailman/listinfo/python-list