[Python-ideas] iterable.__unpack__ method

Tim Chase python.list at tim.thechases.com
Sun Feb 24 09:44:53 EST 2013


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






More information about the Python-list mailing list