On 2/22/07, Neal Becker <ndbecker2 at gmail.com> wrote: > > 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_. i agree with mike; it would just be asking for trouble. (have you ever been bitten by the Perl behavior where the string '0' is considered false? it's a nasty, nasty problem to debug.) neal, you may be confusing the concepts of "convert data from one type to another" and "read the printed representation of data". ben -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-dev/attachments/20070222/025eff8f/attachment.htm
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