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

Reply via email to