On Wed, Jan 21, 2015 at 03:32:49AM -0800, Michael Mitchell wrote:
PEP 285 <http://legacy.python.org/dev/peps/pep-0285> provides some justification for why arithmetic operations should be valid on bools and why bool should inherit from int (see points (4) and (6) respectively). Since it's been 12 years (it's possible this has been brought up again between now and then), I thought it could be worthwhile to take another look.
I am mostly interested in a resurveying of the questions: 1) Would it still be very inconvenient to implement bools separately from ints?
Yes, it would break a lot of code that for the last twelve years has relied on being able to perform arithmetic on bools. Arguably, Python 3 might have been the opportunity to break that backwards compatibility, but we're up to 3.4 now so we would need a very good reason to do so.
2) Do most Python users still agree that arithmetic operations should be supported on booleans?
I don't know about "most", but this Python user thinks so.
Follow-up thought: Something I noticed is that with PEP 484 <https://www.python.org/dev/peps/pep-0484/> (Type Hints) specified as is, there would be no way to statically verify that a function will only operate on ints and not bools.
If you want an int, I'm not sure why you would want to exclude bools since they are ints.
An example would be a function that can only operate on integer values in a JSON dict created by the builtin `json` module (using the default decoder) cannot exist, as that function could operate on the boolean values of the dict.
I'm afraid I don't quite follow this example. Can you give some sample code (with or without annotations)? -- Steve