[Python-Dev] sliceobject Py_None step inquiry
Joseph Armbruster
josepharmbruster at gmail.com
Wed Dec 12 03:23:18 CET 2007
I was playing around with sliceobject.c this evening and noticed the following
behavior. If you slice with a step 0, you receive a ValueError but when you
slice with a step of None, the step is set to 1. As an example, observe the
following interactive session:
>>> a = [1,2,3,4,5,6]
>>> b = slice(0,5,None)
>>> a[b]
[1, 2, 3, 4, 5]
>>> b = slice(0,5,0)
>>> a[b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: slice step cannot be zero
>>>
Within the code, it looks like Py_None performs a step of 1. Does it make
sense to create a patch so that None and 0 behave the same in this respect?
>>> a = [1,2,3,4,5,6]
>>> b = slice(0,5,None)
>>> a[b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: slice step cannot be None
>>> b = slice(0,5,0)
>>> a[b]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: slice step cannot be zero
>>> b = slice(0,5)
>>> a[b]
[1, 2, 3, 4, 5]
>>>
Joe
More information about the Python-Dev
mailing list