[Python-Dev] bool conversion wart? (original) (raw)

Neal Becker ndbecker2 at gmail.com
Fri Feb 23 02:44:00 CET 2007


Mike Klaas wrote:

On 2/22/07, Neal Becker <ndbecker2 at gmail.com> wrote:

Well consider this: >>>str (4) '4' >>>int(str (4)) 4 >>>str (False) 'False'

>>>bool(str(False)) True Doesn't this seem a bit inconsisent? Virtually no python objects accept a stringified version of themselves in their constructor:

str({}) '{}' dict('{}') Traceback (most recent call last): File "", line 1, in ValueError: dictionary update sequence element #0 has length 1; 2 is required str([]) '[]' list('[]') ['[', ']'] Python is not Perl. Except, all the numeric types do, including int, float, and complex. But not bool. In fact, this is not just academic. The fact that other numeric types act this way leaves a reasonable expectation that bool will. Instead, bool fails in the worst possible way: it silently gives a wrong result.



More information about the Python-Dev mailing list