Why python doesn't use syntax like function(, , x) for default parameters?

Antoon Pardon apardon at forel.vub.ac.be
Mon Mar 13 14:04:06 CET 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:


Instead of having to write


The reason is that None is IMO an implemenation detail here. Also
the alternative


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):


   f(Default, 5)

would be equivallent to


Antoon Pardon

More information about the Python-list mailing list