[Python-ideas] bool keyword: (was [Python-Dev] bool conversion wart?)
Greg Ewing
greg.ewing at canterbury.ac.nz
Fri Mar 2 22:37:41 CET 2007
Ron Adam wrote:
>
> Greg Ewing wrote:
>
>> The fact that bool() can be used canonicalise a truth
>> value is secondary
>
> It seems to me it is the main use, with testing for bool types as the
> secondary use.
What I meant was that this usage is not reason enough
on its own for bool to be a type. Given that bool is
already a type, it's convenient for its constructor
to also be the canonicalising function. It's secondary
as a reason for making bool a type, not in the sense
of how it's normally used.
> having bool be a
> subclass of int increases the situations where bool is useful in a nice
> way.
I still think that most of those uses could be covered
by giving bool an __index__ method.
> Making True and False protected objects along with making bool a keyword
> may have some performance benefits since in many cases the compiler
> could then directly return the already constructed True and False object
> instead of creating new one(s). [it may already do this under the
> covers in some cases(?)]
I believe that True and False are treated as singletons,
so this should always happen.
I don't see anywhere enough benefit to be worth making
a bool keyword.
Optimisation of access to True and False is probably
better addressed through a general mechanism for optimising
lookups of globals, although I wouldn't object if they
were treated as reserved identifiers a la None.
Summary of my position on this:
+0 making bool a separate type with __index__ in 3.0
+0 treating True and False like None
-1 bool keyword
--
Greg
More information about the Python-ideas
mailing list