[Python-Dev] Re: list += string?? (original) (raw)

Jeremy Hylton jhylton at gmail.com
Fri Aug 27 18:30:17 CEST 2004


On Thu, 26 Aug 2004 19:12:30 -0400, David Abrahams <dave at boost-consulting.com> wrote:

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.

It's a fair complaint. I've made the mistake myself, and it usually takes a few head scratching and investigation before I realize that I'm passing a string instead of some other sequence. On the other hand, I like slicing lists and occasionally I iterate over their characters. What's the alternative? A typecheck seems like it would be handy, but I'm not sure what type I would want "all sequences except strings"?

Jeremy



More information about the Python-Dev mailing list