[Python-Dev] ACCEPTED: PEP 285

David Ascher DavidA@ActiveState.com
Wed, 03 Apr 2002 14:47:08 -0800

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",
     return int.__eq__(self, other)

or something similar?