homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients eryksun, gvanrossum, mark.dickinson, rhettinger, serhiy.storchaka, tim.peters, tomerv
Date 2019年08月14日.14:55:22
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1565794523.06.0.678904376578.issue37831@roundup.psfhosted.org>
In-reply-to
Content
> 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`.
History
Date User Action Args
2019年08月14日 14:55:23mark.dickinsonsetrecipients: + mark.dickinson, gvanrossum, tim.peters, rhettinger, serhiy.storchaka, eryksun, tomerv
2019年08月14日 14:55:23mark.dickinsonsetmessageid: <1565794523.06.0.678904376578.issue37831@roundup.psfhosted.org>
2019年08月14日 14:55:23mark.dickinsonlinkissue37831 messages
2019年08月14日 14:55:22mark.dickinsoncreate

AltStyle によって変換されたページ (->オリジナル) /