Guido van Rossum wrote:
Despite the negative feedback, I've decided to accept the PEP. The most important perceived problem is that newbies tend to write
if x == True: ...
where they should write
if x: ...
I believe this problem should be solved by education (the Zen master hits the student on the head with a stick, and the student gets enlightenment) rather than by holding back what I believe will be a useful feature.
Would it not be "relatively" easy to add a compiler-time warning for most uses of this dangerous idiom? At the very least, the boolean type could do the equivalent of: def __eq__(self, other): if __debug__ and other not in (0,1,True,False): warnings.warn("Testing of equality is best done by asking objects whether they're true, not comparing with a boolean", RunTimeWarning) return int.__eq__(self, other) or something similar? --david