bug in str.startswith() and str.endswith()

Mel mwilson at the-wire.com
Thu May 26 21:07:12 EDT 2011


Ethan Furman wrote:

> I've tried this in 2.5 - 3.2:
> 
> --> 'this is a test'.startswith('this')
> True
> --> 'this is a test'.startswith('this', None, None)
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> TypeError: slice indices must be integers or None or have an __index__
> method
> 
> The 3.2 docs say this:
> 
> str.startswith(prefix[, start[, end]])
> Return True if string starts with the prefix, otherwise return False.
> prefix can also be a tuple of prefixes to look for. With optional start,
> test string beginning at that position. With optional end, stop
> comparing string at that position
> 
> str.endswith(suffix[, start[, end]])
> Return True if the string ends with the specified suffix, otherwise
> return False. suffix can also be a tuple of suffixes to look for. With
> optional start, test beginning at that position. With optional end, stop
> comparing at that position.
> 
> Any reason this is not a bug?

It's a wart at the very least.  The same thing happened in Python2 with 
range and xrange; there seemed no way to explicitly pass "default" 
arguments.

	Mel.




More information about the Python-list mailing list