Yury Selivanov wrote:
On 2012-06-22, at 3:47 PM, Ethan Furman wrote:

Guido van Rossum wrote:
On Fri, Jun 22, 2012 at 12:24 PM, Yury Selivanov
<yselivanov...@gmail.com> wrote:
On 2012-06-22, at 3:18 PM, Guido van Rossum wrote:

On Fri, Jun 22, 2012 at 12:10 PM, Yury Selivanov
<yselivanov...@gmail.com> wrote:
Yes, I meant optional.  Would 'name(arg1, *, [arg2])' be better?
Hardly, because that's not valid syntax. I'd write name(arg1, *,
arg2=<default>).
Like

  replace(*, name=<default>, kind=<default>, default=<default>,
                                annotation=<default>) -> Parameter

or

  replace(*, name=<optional>, kind=<optional>, default=<optional>,
                                annotation=<optional>) -> Parameter
Either one's an improvement, but you'll have to explain at the top of
the PEP what you intend this notation to mean. I'd go with <optional>
since the key thing here seems to be that various keywords, when not
specified, mean that nothing changes. OTOH in some places you can
probably write "foo=Signature.empty" (etc.).
Parameter names that follow '*' in the signature are not optional (unless that 
has changed since 3.2).  In other words, the above signature requires that 
name, kind, default, and annotation be specified by name *and* be given values 
when replace is called)

I know.  Those are optional keyword-only arguments.

In the code:

    def replace(self, *, name=_void, kind=_void, annotation=_void,
                default=_void):

We just need some clear convention for the PEP - and the <optional>
mark should work.

That looks strange to me -- I suggest putting brackets around each one, like:

replace(*, [name=<optional>,] [kind=<optional>,] [default=<optional>,] [annotation=<optional>]) -> Parameter

which is still a bit noisy. At the risk of raising the ire of those who don't condone the use of '...' :) how about:

   replace(*, [name=...,] [kind=...,] [default=...,] [annotation=...]
            ) -> Parameter

~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to