On 10/09/2013 08:25 PM, Terry Reedy wrote:
I am sure that he has rejected any backward-incompatible change, as
would I. Allowing keyword passing *is* compatible, so I would not
guess about that.
I don't know where to look for this discussion, and I read it quite some
time ago. So I this is only dimly remembered. If it's crucial to the
outcome of this discussion maybe we can ask Guido for a fresh ruling.
But. As I recall the discussion, he was specifically against supporting
keyword arguments for range, and he was adamant that range argument
parsing was not to change in the slightest degree,
backwards-incompatible or not. Again, my almost-certainly-misremembered
quote: "range isn't changing. deal with it."
An *optional* positional-only parameter can be and sometimes is or has
been denoted by [], as with dir([object]). In Python 3, [] is no
longer used for normal optional params, which always have defaults.
The dict signature could be (and maybe once was) given as
dict([mapping-or-iterable], *kwds).
There is a definite problem, though with required positional-only
params. If these are rarer than at present, then it may matter less to
people the indicator is. If they think it obnoxious, they will not
have to see it so often,
Most of the positional-only parameters in CPython are of the "required"
variety.
Some examples? Almost all of the "built-in functions":
http://docs.python.org/3/library/functions.html
only accept positional-only parameters. So, almost anywhere you see a
required parameter on that page, it is a required positional-only parameter.
Also, many (most?) of the really old C extensions exclusively use
PyArg_ParseTuple, so those too. My go-to example is curses simply
because that one gave me the most psychological scarring. But there are
loads of them. Anything that parses arguments solely with
PyArg_ParseTuple only accepts positional-only arguments, and anything
that calls it more than once probably has some optional arguments.
Run from a fresh Python trunk:
% fgrep -w PyArg_ParseTuple */*.c | wc
861 4728 69716
//arry/
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com