[Python-Dev] PEP 3102: Keyword-only arguments (original) (raw)

Terry Reedy tjreedy at udel.edu
Mon May 1 03:08:57 CEST 2006


"Nick Coghlan" <ncoghlan at gmail.com> wrote in message news:44549922.7020109 at gmail.com...

Terry Reedy wrote:

"Talin" <talin at acm.org> wrote in message news:4453B025.3080100 at acm.org...

Now, suppose you wanted to have 'key' be a keyword-only argument.

Why? Why not let the user type the additional argument(s) without the parameter name?

Like Martin, you clipped most of the essential context of my question: Talin's second proposal.

The second syntactical change is to allow the argument name to be omitted for a varargs argument: def compare(a, b, *, key=None): The reasoning behind this change is as follows. Imagine for a moment a function which takes several positional arguments, as well as a keyword argument: def compare(a, b, key=None):

Again I ask, why would one want that? And, is the need for that so strong as to justify introducing '*' as a pseudoparameter?

Because for some functions (e.g. min()/max()) you want to use *args, but support some additional keyword arguments to tweak a few aspects of the operation (like providing a "key=x" option).

This and the rest of your 'explanation' is about Talin's first proposal, to which I already had said "The rationale for this is pretty obvious".

Terry Jan Reedy



More information about the Python-Dev mailing list