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 "<stdin>", line 1, in <module> > 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_.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4