[Python-Dev] bool conversion wart?

Jordan Greenberg jordangreenberg at gmail.com
Mon Feb 26 04:36:13 CET 2007


Guido van Rossum wrote:
 > How would this change be helpful? I'm utterly mystified by these
 > suggestions that bool would be more useful if it didn't behave like an
 > int in arithmetic.

I don't think anyones really saying it would be more useful, it 
obviously wouldn't, since like Greg said, it wouldn't work in mapping 
access or set membership like it does now. I think it would be more 
readable though, since thinks like this:
  >>> True in set([1])
True

or that 5+True is equal to 6 aren't necessarily obvious to someone who 
doesn't know that True evaluates to 1.

 >> The fact that bool is a subclass of int is more historic than 
necessary.  If
 >> not for Python's long usage of 0 and 1 to be the canonical False and 
True, I
 >> suspect that bool might have been implemented as a new standalone type.
 >
 > Not necessarily. I really like the idea that bool is embedded in int,
 > just like int is embedded in float (real), and real is embedded in
 > complex.

It is elegant to embed bool in int, but to me it screams C. To me, it 
makes more sense to use an int if you want an int, and to reserve 
boolean for logic.

 From an elegance/usefulness standpoint, maybe bool should evaluate to 0 
and 1. But IMHO, it would eliminate some gotchas and improve readability 
if it didn't.

-Jordan Greenberg, not a Py-Dev, just an interested luser^H^H^Hrker.


More information about the Python-Dev mailing list