[Python-Dev] PEP 3102: Keyword-only arguments

Josiah Carlson jcarlson at uci.edu
Fri May 5 20:32:30 CEST 2006


Jean-Paul Calderone <exarkun at divmod.com> wrote:
> 
> On Fri, 5 May 2006 08:20:02 -0500, Michael Urman <murman at gmail.com> wrote:
> >On 5/5/06, Terry Reedy <tjreedy at udel.edu> wrote:
> >> At present, Python allows this as a choice.
> >
> >Not always - take a look from another perspective:
> >
> >def make_person(**kwds):
> >    name = kwds.pop('name', None)
> >    age = kwds.pop('age', None)
> >    phone = kwds.pop('phone', None)
> >    location = kwds.pop('location', None)
> >    ...
> >
> >This already requires the caller to use keywords, but results in
> >horrid introspection based documentation. You know it takes some
> >keywords, but you have no clue what keywords they are. It's as bad as
> >calling help() on many of the C functions in the python stdlib.
> >
> >So what allowing named keyword-only arguments does for us is allows us
> >to document this case. That is an absolute win.
> 
> Here you go:
[snip]

Nice work!  So, can we add this to the functools module right next to
decorator, and bypass the syntax change?

 - Josiah



More information about the Python-Dev mailing list