[Python-Dev] For review: PEP 285: Adding a bool type

David Ascher DavidA@ActiveState.com
Fri, 08 Mar 2002 11:54:10 -0800


> It is commonly seen as a small wart.  While the wart is easy to work
> around (I've seen lots of code defining constants True and False or
> variations), what's missing is a standard way so everybody can do it
> the same way.

That's easy.  That problem can be dealt with by defining True and False
as built-in constants with values 1 and 0 respectively (while you're at
it, make None read-only =).

> > 2) "it helps with things like RPC protocols that may prefer to encode
> > Booleans differently from integers."
> >
> > That is a real issue except that it seems to have been solved relatively
> > well by all of the language bindings so far.  IIRC, there are some
> > awkward situations in Jython if you explicitly want to send a boolean to
> > a polymorphic function, but that's an edge case.
> 
> I didn't invent this argument; Marc-Andre thought it would be
> helpful.  I see it as a mild argument at most.  But it's useful that
> in situations where a receiver would like to distinguish Booleans from
> ints, you can now do it.

Agreed. I also agree w/ the mildness of it.

> > 3) "It's useful to be able to tell from a function result that the
> >     outcome has Boolean semantics"
> >
> > This is intriguing.  I can't think of a case where the current integer
> > return values have caused me problems or concerns that weren't solved by
> > simply understanding what the function was about.  What use case did you
> > have in mind?
> 
> When showing people comparison operators etc. in the interactive

>     >>> a > b
>     1

vs.

>     >>> a > b
>     True

and:

>     >>> cmp(a, b)
>     1
>     >>> cmp(a, a)
>     0

Which really seems to be the key issue, both as a positive (your
argument) and as a negative (MAL's posts).

I wonder if the str()/repr() distinction or % formatting codes could
help break the logjam.  Probably not.

I'm still not convinced that the disease is worth the cure, but I'm
open-minded =).

--david