On 4/21/06, Talin <[EMAIL PROTECTED]> wrote:
> Guido van Rossum <guido <at> python.org> writes:
>
>> To prevent more abominations like this, let me pronounce that I now
>> like the single-star syntax:
>>
>>   def foo(a, b, *, x=1, y=2): ...
>
> Thank you :) It was getting pretty strange there.
>
> The variation that I was thinking of was a little shorter, but not
> necessarily better:
>
>    def foo( a, b; x=1, y=2 ): ...

At the risk of hypergeneralization...  If *arg means "put the rest of the
positional arguments in arg", then if we simply allow arg to be a tuple...

def foo(*(a, b)): ...           # disallow keyword args.
def foo(a, b, *(), x, y): ...   # disallow positional args after b.
def foo(*(a, b), x, y): ...     # a, b _must_ be positional; x, y keyword.

That () = () is currently a syntax error might be considered a reason to
use the lone star spelling instead of *(), but I find the tuple more obvious.

        /Paul
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to