[Python-ideas] Keyword only argument on function call
toddrjen at gmail.com
Thu Sep 6 09:58:03 EDT 2018
Sorry, nevermind. I think I misunderstood the idea.
On Thu, Sep 6, 2018 at 9:56 AM Todd <toddrjen at gmail.com> wrote:
> 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>
>> 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