[Python-Dev] Re: list += string?? (original) (raw)
David Abrahams dave at boost-consulting.com
Fri Aug 27 01:12:30 CEST 2004
- Previous message: [Python-Dev] list += string??
- Next message: [Python-Dev] Re: list += string??
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
David Abrahams <dave at boost-consulting.com> writes:
It was new when the iterator protocol was introduced. It wasn't explicitly intended that you get surprises for strings specifically, but it was explicitly intended that
list += whatever work like list.extend(whatever) and that whatever can be any iterable object. I figured as much.
Report from the field: I just discovered a bug that's been hiding in my code for a few months. The code was being exercised, but the result was the same as if the code had been correct until I threw some new examples at it. The problem was:
self.body[e[0]:e[1]] = s
self.body is a list of strings, and s is a string. Later ''.join(self.body) gets called, so for many cases the bug was hidden. No offense intended (okay, maybe a tiny little offense), but the experience here is a bit Perl-like.
Since strings are iterable objects, it's no more or less surprising than that 'for ch in "bomb"' works too . I want my ,= operator!
I still do, but it wouldn't have solved this problem.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com
- Previous message: [Python-Dev] list += string??
- Next message: [Python-Dev] Re: list += string??
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]