On this page
Slice Objects
- PyTypeObject
PySlice_Type
- 切片对象的类型对象。这与
slice
和types.SliceType
相同。
- 切片对象的类型对象。这与
int
PySlice_Check
(PyObject ** ob *)- 如果* ob *是切片对象,则返回 true;否则,返回 true。 * ob 不能为 NULL *。
PyObject *
PySlice_New
(PyObject 开始,PyObject* 停止*,PyObject *步骤)- 返回值:新参考.
返回具有给定值的新 slice 对象。参数* start , stop 和 step 用作相同名称的切片对象属性的值。任何值都可以是 NULL ,在这种情况下,None
将用于相应的属性。如果无法分配新对象,则返回 NULL *。
- int
PySlice_GetIndices
(PySliceObject **slice ,Py_ssize_t * length ,Py_ssize_t start *,Py_ssize_t *stop ,Py_ssize_t step *)- 假设长度为 length * length ,则从切片对象 slice 检索开始,停止和步进索引。将大于 length *的索引视为错误。
如果成功,则返回0
,如果没有错误,则返回-1
,且未设置任何异常(除非其中一个索引不是None并且未能转换为整数,在这种情况下,将返回-1
并设置了异常)。
您可能不想使用此Function。如果要在 2.3 之前的 Python 版本中使用切片对象,则最好将PySlice_GetIndicesEx()的源(适当地重命名)合并到扩展的源中。
在版本 2.5 中更改:此函数对_length 使用int
类型,对 start , stop 和 step *使用int *
类型。这可能需要更改您的代码以正确支持 64 位系统。
- int
PySlice_GetIndicesEx
(PySliceObject **slice ,Py_ssize_t * length ,Py_ssize_t start *,Py_ssize_t *stop ,Py_ssize_t step *,Py_ssize_t ** slicelength *)- 可用的替代PySlice_GetIndices()。假定长度为 length * length ,从切片对象 slice 检索开始,停止和步长索引,并将切片的长度存储在 slicelength *中。超出范围的索引将以与常规切片的处理一致的方式进行裁剪。
如果设置了异常,则返回0
成功,返回-1
错误。
2.3 版的新Function。
在版本 2.5 中更改:此函数对__length 使用int
类型,对 start , stop , step 和 slicelength *使用int *
类型。这可能需要更改您的代码以正确支持 64 位系统。