[Python-Dev] PEP 3102: Keyword-only arguments (original) (raw)
Joe Smith unknown_kev_cat at hotmail.com
Sun Apr 30 20:05:45 CEST 2006
- Previous message: [Python-Dev] PEP 3102: Keyword-only arguments
- Next message: [Python-Dev] introducing the experimental pyref wiki
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Talin" <talin at acm.org> wrote in message news:4453B025.3080100 at acm.org...
Abstract
This PEP proposes a change to the way that function arguments are assigned to named parameter slots. In particular, it enables the declaration of "keyword-only" arguments: arguments that can only be supplied by keyword and which will never be automatically filled in by a positional argument.
Rationale The current Python function-calling paradigm allows arguments to be specified either by position or by keyword. An argument can be filled in either explicitly by name, or implicitly by position. There are often cases where it is desirable for a function to take a variable number of arguments. The Python language supports this using the 'varargs' syntax ('*name'), which specifies that any 'left over' arguments be passed into the varargs parameter as a tuple. One limitation on this is that currently, all of the regular argument slots must be filled before the vararg slot can be. This is not always desirable. One can easily envision a function which takes a variable number of arguments, but also takes one or more 'options' in the form of keyword arguments. Currently, the only way to do this is to define both a varargs argument, and a 'keywords' argument (**kwargs), and then manually extract the desired keywords from the dictionary.
First of all, let me remark that The current python symantics almost perfectly match those of VB6. Sure there is a little bit of syntax differences, but overall they are approximately equivlent. This is actually a good thing
The one area thing that VB6 allows that python does not is optional arguments without a default value. However, what really happens is that the compiler assigns a default value, so it really is only a tiny difference.
The main proposal here adds an aditional feature, and thus will break th matching of VB6, but not in a negative way, as VB6 could benefit from the same extention. So I would be +1.
However, I'm not sure what the use case is for keyword only arguments on functions that do not accept a variable number of arguments. Could you please provide an example use case?
- Previous message: [Python-Dev] PEP 3102: Keyword-only arguments
- Next message: [Python-Dev] introducing the experimental pyref wiki
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]