[Python-ideas] Keyword only argument on function call
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
> The full PEP-style suggestion is here:
> 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
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas