切片对象 — Python 文档

来自菜鸟教程
Python/docs/2.7/c-api/slice
跳转至:导航、​搜索

切片对象

PyTypeObject PySlice_Type
切片对象的类型对象。 这与 slicetypes.SliceType 相同。
int PySlice_Check(PyObject *ob)
如果 ob 是切片对象,则返回 true; ob 不能是 NULL
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
返回具有给定值的新切片对象。 startstopstep参数作为同名切片对象属性的值。 任何值都可以是 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 的序列,从切片对象 slice 中检索开始、停止和步长索引。 将大于 length 的索引视为错误。

成功时返回 0,错误时返回 -1,没有设置异常(除非索引之一不是 None 并且无法转换为整数,在这种情况下 [ X179X] 与异常集一起返回)。

您可能不想使用此功能。 如果您想在 2.3 之前的 Python 版本中使用切片对象,您可能最好将 PySlice_GetIndicesEx() 的源代码合并到您的扩展源中,并适当地重命名。

2.5 版更改:此函数使用 int 类型 lengthint * 类型 start]停止。 这可能需要更改您的代码才能正确支持 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 的序列,从切片对象 slice 检索开始、停止和步长索引,并将切片的长度存储在 slicelength 中。 越界索引以与处理正常切片一致的方式进行裁剪。

成功时返回 0,异常集时返回 -1

2.3 版中的新功能。

2.5 版更改:此函数使用 int 类型 lengthint * 类型 start]stopstepslicelength。 这可能需要更改您的代码才能正确支持 64 位系统。


省略号对象

PyObject *Py_Ellipsis
Python Ellipsis 对象。 这个对象没有方法。 在引用计数方面,它需要像任何其他对象一样对待。 像 Py_None 它是一个单例对象。