On 17.04.20 12:49, Alex Hall wrote:
But this means the reader could miss the star, especially with a very large function call over multiple lines, and if that reader happens to use that particular function A LOT and know the parameter order without having to look they would pretty easily believe the arguments are doing something different than what is actually happening.

Thank you for giving an actual scenario explaining how confusion could occur. Personally I think it's a very unlikely edge case (particularly someone comparing argument order to their memory), and someone falsely thinking that correct code is buggy is not a major problem anyway.

I propose using two asterisks instead of one as the magical argument separator. `**` is more closely associated with keyword arguments, it's harder to visually miss, and it avoids the problem mentioned [here](https://mail.python.org/archives/list/python-ideas@python.org/message/XFZ5VH5DKIFJ423FKCTHXPHDONAO3DFI/) which I think was a valid point. So a call would look like:

    function(**, dunder, invert, private, meta, ignorecase)

In that case, would you also allow `**kwargs` unpacking to serve as a separator? That is:

    function(**kwargs, dunder, invert, private, meta, ignorecase)

Currently this is a SyntaxError. I think it would fit the symmetry with respect to `def func(*args, bar)` vs. `def func(*, bar)`; whether or not there is something to unpack, what follows after it remains unaffected.

Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/WJYJBOWVR7W3ACCOPS3XP6MEFDEIV3LV/
Code of Conduct: http://python.org/psf/codeofconduct/