[Python-Dev] keyword-only arguments and varags
Nick Coghlan
ncoghlan at gmail.com
Sun Jun 5 07:58:09 CEST 2011
On Sun, Jun 5, 2011 at 11:45 AM, Benjamin Peterson <benjamin at python.org> wrote:
> Currently,
>
> def f(*, kw, **kwargs): pass
>
> is valid syntax, but
>
> def f(*args, *, kw): pass
>
> is not.
>
> I don't see any mention of it in the PEP but perhaps there is a good
> reason this isn't allowed. It seems to be perfectly well-defined to
> me.
Really? There's two single-stars there. One says "accept arbitrary
positional arguments and place them in a tuple named args", the second
says "don't accept any more positional args". You can't have it both
ways, so the compiler complains.
The following works fine to mix keyword-only arguments with arbitrary
positional arguments, so I don't see a problem:
def f(*args, kw): pass
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-Dev
mailing list