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@). -tkc -- http://mail.python.org/mailman/listinfo/python-list