[Python-ideas] Positional-only parameters
Terry Reedy
tjreedy at udel.edu
Wed Mar 1 15:52:59 EST 2017
On 3/1/2017 2:53 PM, Guido van Rossum wrote:
> On Wed, Mar 1, 2017 at 11:25 AM, Serhiy Storchaka
> <storchaka at gmail.com
> <mailto:storchaka at gmail.com>> wrote:
>
> On 28.02.17 23:17, Victor Stinner wrote:
>
> My question is: would it make sense to implement this feature in
> Python directly? If yes, what should be the syntax? Use "/" marker?
> Use the @positional() decorator?
>
>
> I'm strongly +1 for supporting positional-only parameters. The main
> benefit to me is that this allows to declare functions that takes
> arbitrary keyword arguments like Formatter.format() or
> MutableMapping.update(). Now we can't use even the "self" parameter
> and need to use a trick with parsing *args manually. This harms
> clearness and performance.
> Agreed.
+ 1 also. When people write a Python equivalent of a built-in function
for documentation or teaching purposes, they should be able to exactly
mimic the API.
> The problem with the "/" marker is that it looks ugly. There was an
> excuse for the "*" marker -- it came from omitting the name in
> "*args". The "*" prefix itself means an iterable unpacking, but "/"
> is not used neither as prefix nor suffix.
>
>
> It's in a sense a pun -- * and / are "opposites" in mathematics, and so
> are the usages here.
Besides which, '/' has traditionally be used in non-numeric contexts as
a separator, and in unix paths.
--
Terry Jan Reedy
More information about the Python-ideas
mailing list