On Mon, Feb 25, 2013 at 1:44 AM, Tim Chase <python.l...@tim.thechases.com> wrote: > On 2013-02-25 01:19, Chris Angelico wrote: >> >>> command, subcommand = next(iterargs), next(iterargs) >> >> >> >> >> >> Err.... is there a language guarantee of the order of evaluation >> >> in a tuple, or is this just a "CPython happens to evaluate >> >> independent expressions left-to-right"? This is totally broken >> >> if the next() calls could be done in either order. >> > >> > It's a language guarantee. >> > >> > http://docs.python.org/2/reference/expressions.html#evaluation-order >> >> Ah, so it is. My bad, sorry! In that case, sure, this works. It >> still violates DRY though, naming the iterable twice and relying on >> the reader noticing that that means "take two off this one". But >> that's a much weaker concern. > > Your DRY/readability concern might then be addressed by writing it as > > from itertools import islice > # ... > command, subcommand = islice(iterargs, 2) > > (sorry if this was already addressed in the python-ideas@ thread, > since I'm not subscribed there and it looks like discussion migrated > to python-list@).
Blargh, it didn't migrate, I just posted to the wrong list courtesy of a typo. Sorry. ChrisA -- http://mail.python.org/mailman/listinfo/python-list