If you're confused about the later part, I think what's happending is that when I do:
True == False
I have redefined the label 'True', but there are still circumstances where Python goes back to its original definition. In particular, with
b = True == False
the first thing is that Python looks up its 'True', (at 0x1001163b0) and evaluates whether it is
True
. It is, so the evaluation is short-circuited and Python's True
is assigned to b. On the other hand, this doesn't work like I expect:[ UPDATE: I think I've stepped into logical quicksand here. I assigned my label 'True' to Python's value for False. The comparison b = True == False evaluates to True, but that's Python's True, and assigns it to b. At the end, I just messed up somehow. The correct test is: