News for hackers. Stuff that matters.
Re:What the Fuck Python by 3eb7988a1663 on Sunday July 20, 2025 @03:46PM (#44628661)
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" ""
Re:What the Fuck Python by crazygringo on Sunday July 20, 2025 @05:47PM (#44629622)
No, 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.