[Python-Dev] PEP 457: Syntax For Positional-Only Parameters
Steven D'Aprano
steve at pearwood.info
Thu Oct 10 00:28:25 CEST 2013
On Wed, Oct 09, 2013 at 09:46:00PM +0100, Mark Shannon wrote:
> There is no need to create an "undefined" value.
> Rather than define a parameter by assigning a fake value, just don't
> define it. We already do this for non-parameter locals and it could be
> extended to parameters.
>
> 'range' would be defined thus:
>
> def range([start,] stop, [step], /):
> try:
> start
> except UnboundLocalError:
> start = 0
> try:
> step
> except UnboundLocalError:
> step = 1
> ...
If there is even the tiniest, faintest chance that positional arguments
will be available to functions written in Python some day, -1 to this
suggestion. There is no way I want to write code like the above instead
of:
def range([start,] stop, [step,] /):
if start is Undefined:
start = 0
if step is Undefined:
step = 1
But what I really want to write is this:
def range(start=0, stop, step=1, /):
...
although maybe we don't want to encourage odd calling signatures by
making them too easy to write.
--
Steven
More information about the Python-Dev
mailing list