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.


Thomas
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to