
I’m not sure if this would work out the same way or not. And even if it does, that hurdle of describing the syntax in a way that people won’t get confused the way they do when they first learn the feature in C++ might be hard to overcome. But it’s at least plausible that it could be readable and learnable enough.
I'm not sure what's hard to explain. """ When you see a function call like this: foo(bar, *, spam, baz) with an asterisk (*) sitting on its own looking like an argument, it's a shorthand for this: foo(bar, spam=spam, baz=baz) Every argument after the asterisk gets turned into a keyword argument where the argument name is the same as the variable name, i.e. <name>=<name>. In a function *definition* (as opposed to a call), an asterisk sitting on its own between parameters has a different meaning, but there are similarities: every parameter after the asterisk is a keyword parameter. """