Why python doesn't use syntax like function(, , x) for default parameters?
Antoon Pardon
apardon at forel.vub.ac.be
Mon Mar 13 08:04:06 EST 2006
Op 2006-03-10, Terry Reedy schreef <tjreedy at udel.edu>:
>
> "Antoon Pardon" <apardon at forel.vub.ac.be> wrote in message
> news:slrne1372v.mt4.apardon at rcpc42.vub.ac.be...
>> but nobody seems to have
>> a problem with range(n) where n suddenly is the second parameter and
>> we use the default for the first.
>
> Actually, I consider the unique calling pattern for x/range to be something
> of a wart. Learning this inconsistency was at least a minor problem. It
> is a rather extreme example of typing laziness beats purity.
>
> Given that enumerate() eliminate many uses of range(), it might be worth
> considering requiring the start param. range(0,n) only takes two more
> keystrokes. Better maybe to shorten range to rng to get them back ;-)
Take the split method of strings. Personnaly I would prefer to be able
to write:
s.split(,3)
Instead of having to write
s.split(None,3)
The reason is that None is IMO an implemenation detail here. Also
the alternative
s,split(maxsplit=3)
doesn't work in this case.
What may be an option for the future is a Default Object. So that
if you have.
def f(x=0,y=0):
...
then
f(Default, 5)
would be equivallent to
f(0,5)
--
Antoon Pardon
More information about the Python-list
mailing list