Steven D'Aprano wrote: > On Tue, 10 Jul 2007 17:47:47 -0600, Steven Bethard wrote: >> But I think all you're really saying is that newbies don't expect things >> like +, -, *, etc. to work with bools at all. Which I agree is probably >> true. > > No, what I am saying is that True and False being integers under the hood > is a surprising implementation detail. It has no _inherent_ benefit: it > is merely a practical way to bring bools into the language while > remaining backward compatible. For Python 2.x, that was the least bad > solution to the issue "oops, we should have included a bool type". > > Python 3 is allowed to break backwards compatibility, and there is no > reason I can see to keep the current hack.
Remember that while Python 3 is allowed to break backwards compatibility, it's only supposed to do it when there are concrete benefits. Clearly there are existing use cases for treating bools like ints, e.g. from Alexander Schmolck's email: (x < b) * f(x) -1 ** (i == j) If you want to remove this functionality, you're going to need to provide some new use cases that it satisfies that are clearly more important than these existing ones. STeVe -- http://mail.python.org/mailman/listinfo/python-list