I am maintaining some old code where the programmer used 1 for True because
booleans hadn't been added to Python yet. I'm getting some weird behaviour, so
I created some simple tests to illustrate my issue.
>>> 1 in {1:1} #test1
True
>>> 1 in {1:1} == 1 #test2
False
>>> (1 in {1:1}) == 1 #test3
True
>>> 1 in ({1:1} == 1) #test4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument of type 'bool' is not iterable
>>>
You can see that in the first test we get True as expected. The second test
yield False, because True does not equal 1, apparently. Fair enough. But then
the third test yields True. Weird. Okay, so maybe it was evaluating the right
side first? So I put the parens over to the right and it fails, so that wasn't
it. So why do the second and third test differ?
--
https://mail.python.org/mailman/listinfo/python-list