[Python-Dev] ACCEPTED: PEP 285

David Ascher DavidA at ActiveState.com
Wed Apr 3 17:47:08 EST 2002


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





More information about the Python-list mailing list