切片对象 — Python 文档
来自菜鸟教程
Python/docs/3.6/c-api/slice
切片对象
- PyTypeObject PySlice_Type
- 切片对象的类型对象。 这与 Python 层中的 slice 相同。
- int PySlice_Check(PyObject *ob)
- 如果 ob 是切片对象,则返回 true; ob 不能是 NULL。
- 返回具有给定值的新切片对象。 start、stop、step参数作为同名切片对象属性的值。 任何值都可以是 NULL,在这种情况下,
None
将用于相应的属性。 如果无法分配新对象,则返回 NULL。
- int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)
假设一个长度为 length 的序列,从切片对象 slice 中检索开始、停止和步长索引。 将大于 length 的索引视为错误。
成功时返回
0
,错误时返回-1
,没有设置异常(除非索引之一不是 None 并且无法转换为整数,在这种情况下 [ X179X] 与异常集一起返回)。您可能不想使用此功能。
3.2 版本更改: slice 参数的参数类型之前为
PySliceObject*
。
- int PySlice_GetIndicesEx(PyObject *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
。3.2 版本更改: slice 参数的参数类型之前为
PySliceObject*
。
省略号对象
- PyObject *Py_Ellipsis
- Python
Ellipsis
对象。 这个对象没有方法。 在引用计数方面,它需要像任何其他对象一样对待。 像 Py_None 它是一个单例对象。