[Python-Dev] Extending tuple unpacking

Guido van Rossum guido at python.org
Mon Oct 10 16:50:02 CEST 2005


On 10/10/05, Nick Coghlan <ncoghlan at gmail.com> wrote:
> It also works for situations where "the first n items are mandatory, the rest
> are optional". This usage was brought up in the context of a basic line
> interpreter:
>
>    cmd, *args = input.split()

That's a really poor example though.  You really don't want a line
interpreter to bomb if the line is empty!

> Another usage is to have a Python function which doesn't support keywords for
> its positional arguments (to avoid namespace clashes in the keyword dict), but
> can still unpack the mandatory arguments easily:
>
>    def func(*args, **kwds):
>        arg1, arg2, *rest = args # Unpack the positional arguments

Again, I'd be more comfortable if this was preceded by a check for
len(args) >= 2.

I should add that I'm just -0 on this. I think proponents ought to
find better motivating examples that aren't made-up.

Perhaps Raymond's requirement would help -- find places in the
standard library where this would make code more
readable/maintainable.

--
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list