Mark Dickinson <dicki...@gmail.com> added the comment:

> Because bool is embedded in int, it's okay to return a bool value *that 
> compares equal to the int from the corresponding int operation*.

Agreed that it's okay, but I'd like to understand why it's considered 
*desirable*. What use-cases benefit from having `x | y` give `True` or `False` 
rather than `1` or `0` when `x` and `y` are bools? Is the intent that `x & y` 
and `x | y` provide shorter ways to spell `x and y`, `x or y`, or (as I think 
Serhiy's suggesting) is this about catering to people coming from other 
languages and expecting `&` and `|` to be the right operations for doing logic 
with bools?

>From my integer-centric point of view, | and & are bitwise integer operations, 
>not logical operations; they only *happen* to apply to bool because a bool is 
>an int, but they're not natural boolean operations (in exactly the same way 
>that +, -, *, etc. aren't natural boolean operations). "and" and "or" seem the 
>"one obvious way to do it" for logical operations on bools; I don't think I 
>understand why anyone would want to use | and & on bools to get another bool, 
>instead of just using `or` and `and`.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37831>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to