On 10/09/2013 07:48 AM, Eric Snow wrote:
The PEP doesn't mention anything about inspect.Signature, which
already supports positional-only parameters.  It should.

Well, inspect.Signature support for positional-only parameters is currently insufficient to express all of Python's builtins. As I mentioned in my long reply to Benjamin just now, I got Brett to agree that I could add a "group" field to inspect.Parameter to indicate a positional parameter's "option group". I guess this could be part of the PEP.


This also has an impact on other Python implementations, where
maintaining the same positional-only semantics for "builtins" is
complicated (at least a little) by the lack of a positional-only
syntax in Python.

Again, I don't expect this syntax to be implemented any time soon. But this does raise a mild sore point: Maciej and Armin Rigo tell me that PyPy's implementation of range() looks like this:

   def range(x, y=None, step=None):

The "None" above is not the Python None, it's RPython's internal None, so it's not available to Python programs. But this does mean range() in PyPy accepts keyword parameters, and in fact this works:

   range(9, step=2)

That's way illegal in CPython.


This is for the sake of only a couple unfortunate builtins, right?
Parameter grouping will undoubtedly be the most controversial part of
this PEP.  I'm not convinced this is a capability we need to encourage
in any way.  Is there some alternate one-off we can use for range,
addch, et al.?

I look forward to an alternate suggestion. This is the least-bad thing I could come up with.


What are the names bound to for unfulfilled optional groups?  Not
bound (yuck)?  What is wrong with default values within optional
groups (other than how messy the syntax starts to become)?

Please see my reply to Steven D'Aprano from about twelve hours ago.


What about this:

def spam([a,] b, [c,] d, /):

Quoting the PEP: "All "required" positional-only parameters must be contiguous." b and d are discontinuous. So this is illegal syntax.


//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

Reply via email to