Slice Objects

  • PyTypeObject PySlice_Type
    • 切片对象的类型对象。这与slicetypes.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 位系统。

Ellipsis Object

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