The Python analog would be something like this:
assert (object() < object()) == False
(try running this in the interpreter a few times)
assert (object() < object()) == False
(try running this in the interpreter a few times)
The example given is equivalent in badness to:
g = Timer()
assert g.startTimer() == 0
... and then wondering why the timer doesn't start when you run your program in "optimized" mode.For generic objects, the __lt__ and __gt__ methods are simply defined the only way that's sensible, which is effectively as a pointer location comparison.