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