4 ms·
True == 1 => True. Also, it makes heaps of sense to have the identity `1 if boolean else 0` baked into the language.
by filmor 11y ago
True == 1 => True. Also, it makes heaps of sense to have the identity `1 if boolean else 0` baked into the language.
- berdario 11y agoWhile I agree on the pragmatic value of it, and I think this is a pretty minor blemish in the semantics of Python. You can easily have booleans as a completely different type, and yet avoid stuff like: `1 if boolean else 0`... In Haskell, for example, `True + True` and `True == 1` are compile errors (unless you defined wacky Num instances), and the boolean/int "identity" is simply handled by `fromEnum` (which works on any Enum, not only Bool) 1 == fromEnum True 0 == fromEnum False