8 ms·
Sounds like your complaint is with str() and not bool(). Which becomes a different issue - what do you think str(True) and str(False) should produce. Integer r
by 3eb7988a1663 1y ago
Sounds like your complaint is with str() and not bool().
Which becomes a different issue - what do you think str(True) and str(False) should produce. Integer representations? That then makes other things unintuitive with changing the form of a boolean.
print(0, 1, False, True)
# today: 0 1 False True
# as ints: 0 1 0 1
# new str: 0 1 "True" ""
- crazygringo 1y agoNo, my problem is with bool(). str(False) == 'False' is entirely logical. So therefore bool('False') == False would be consistent. And bool('foo') would produce an exception the exact same way int('foo') and float('foo') already do. Who on earth thought it was a good idea that 'foo' could or should be interpreted as a boolean...?? The entire concept of 'truthiness' outside of ints is unhelpful. It's just asking for bugs. That the length of a string, rather than its content, should determine a boolean value is one of the more bizarre things I've come across in programming languages. Use len() if you want that. It's only 5 extra characters.