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