[Python-ideas] Keyword only argument on function call

Todd toddrjen at gmail.com
Thu Sep 6 09:56:10 EDT 2018

I have encountered situations like this, and generally I just use **kwargs
for non-critical  and handle the parameter management in the body of the

This also makes it easier to pass the arguments to another function.  You
can use a dict comprehension to copy over the keys you want, then unpack
them as arguments to the next function.

On Thu, Sep 6, 2018 at 6:16 AM Anders Hovmöller <boxed at killingar.net> wrote:

> I have a working implementation for a new syntax which would make using
> keyword arguments a lot nicer. Wouldn't it be awesome if instead of:
>         foo(a=a, b=b, c=c, d=3, e=e)
> we could just write:
>         foo(*, a, b, c, d=3, e)
> and it would mean the exact same thing? This would not just be shorter but
> would create an incentive for consistent naming across the code base.
> So the idea is to generalize the * keyword only marker from function to
> also have the same meaning at the call site: everything after * is a kwarg.
> With this feature we can now simplify keyword arguments making them more
> readable and concise. (This syntax does not conflict with existing Python
> code.)
> The full PEP-style suggestion is here:
> https://gist.github.com/boxed/f72221e7e77370be3e5703087c1ba54d
> I have also written an analysis tool you can use on your code base to see
> what kind of impact this suggestion might have. It's available at
> https://gist.github.com/boxed/610b2ba73066c96e9781aed7c0c0b25c . The
> results for django and twisted are posted as comments to the gist.
> We've run this on our two big code bases at work (both around 250kloc
> excluding comments and blank lines). The results show that ~30% of all
> arguments would benefit from this syntax.
> Me and my colleague Johan Lübcke have also written an implementation that
> is available at: https://github.com/boxed/cpython
> / Anders Hovmöller
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180906/43ba3abf/attachment-0001.html>

More information about the Python-ideas mailing list