[Python-Dev] AC Derby and accepting None for optional positional arguments

Antoine Pitrou solipsis at pitrou.net
Thu Jan 16 12:39:49 CET 2014


On Thu, 16 Jan 2014 04:42:43 -0500
Terry Reedy <tjreedy at udel.edu> wrote:

> On 1/16/2014 3:31 AM, Serhiy Storchaka wrote:
> > 16.01.14 08:05, Guido van Rossum написав(ла):
> >> In this specific case it's clear to me that the special-casing of
> >> negative count is intentional -- presumably it emulates sequence
> >> repetition, where e.g. 'a'*-1 == ''.
> >
> > In this specific case it's contrary to sequence repetition. Because
> > repeat('a', -1) repeats 'a' forever.
> 
> 'Forever' only when the keyword is used and the value is -1.
> In 3.4b2
> 
>  >>> itertools.repeat('a', -1)
> repeat('a', 0)
>  >>> itertools.repeat('a', times=-1)
> repeat('a')
>  >>> itertools.repeat('a', times=-2)
> repeat('a', -2)

Looks like a horrible bug to me. Passing an argument by position should
mean the same as passing it by keyword!

Regards

Antoine.




More information about the Python-Dev mailing list