I just thumped my head against the wall for a few hours on something, and I was wondering if it's just my green-ness in Python, or if I'm doing something unsavory.
I had several list comprehensions that I was mucking with; these lists are working on a simple subclass of the built-in list object. They looked liked this: filelist = getFilesToAdd() filelist2 = getFilesToDel() adds = MyList('foo') dels = MyList('bar') [adds.add_changes('foo', path) for path in filelist] [dels.add_changes('bar', path) for path in filelist2] # return all changes, deletes first return dels.extend(adds) Since extend returns None, I ran into a lot of not-iterable errors when calling this code. So I fixed this with dels.extend(adds) return dels And all is good, although it took way more head scratching than typing . (In writing this, I now vaguely remember one of my tutorials warning me about something ... maybe this was that? :) So my question is this: Is this just one of those things that I learn the hard way in Pthon & that's it, or am I doing something weird? I shoulda figured this out when I was debugging the method in the interpreter and my original list comprehensions returned [adds.add_changes('foo', path) for path in filelist] >>> [None, None, None] as each call to add_changes returned no value. Alas, I'm not that smart. Is it bad form to not have an "assignment" for the list comps? _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor