切片对象 – 具体对象层(Python教程)(参考资料)

切片对象

PyTypeObject PySlice_Type
切片对象的类型对象。这与thePython图层中的slice相同.
int PySlice_Check( PyObject  *ob
返回如果ob是一个切片对象;ob一定不能NULL.
PyObject * PySlice_New( PyObject  *start,PyObject  *stop,PyObject  *step
Return value: New reference.

返回具有给定值的新切片对象。start, stopstep参数用作相同名称的切片对象属性的值。任何值都可以是NULL,在这种情况下None将用于相应的属性。返回NULL如果新对象无法分配.

int PySlice_GetIndices( PyObject  *slice,Py_ssize_t  length,Py_ssize_t  *start,Py_ssize_t  *stop,Py_ssize_t  *step
从切片对象slice,假设一系列长度length。对待指数大于length作为错误

返回0成功与-1没有异常设置的错误(除非其中一个索引不是None并且未能转换为整数,在这种情况下-1返回异常集).

您可能不想使用此功能.

更改版本3.2: slice参数的参数类型为PySliceObject*before.

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()。从切片对象slice假设一个长度为length的序列,并将切片的长度存储在slicelength中。超出范围的索引以与处理正常切片一致的方式剪切.

返回0成功与-1异常集错误.

注意

对于可调整大小的序列,此函数被认为是不安全的。它的调用应该由PySlice_Unpack()PySlice_AdjustIndices()其中

if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) {      // return error  }

替换为

if (PySlice_Unpack(slice, &start, &stop, &step) < 0) {      // return error  }  slicelength = PySlice_AdjustIndices(length, &start, &stop, step);

在版本3.2中更改: slice参数的参数类型是PySliceObject*在前面

更改版本3.6.1:如果Py_LIMITED_API未设置或设置为0x030504000x03060000(不包括)或0x03060100或更高PySlice_GetIndicesEx()使用PySlice_Unpack()PySlice_AdjustIndices().Arguments start, stopstep被评估不止一次.

从版本3.6.1开始不推荐使用:如果Py_LIMITED_API设置为小于的值0x03050400或者0x030600000x03060100(不包括)PySlice_GetIndicesEx()是一个不赞成使用的功能.

int PySlice_Unpack( PyObject  *slice,Py_ssize_t  *start,Py_ssize_t  *stop,Py_ssize_t  *step
从切片对象asC整数中提取开始,停止和步骤数据成员。默默地将大于PY_SSIZE_T_MAX的值减小到PY_SSIZE_T_MAX,默默地将启动和停止值提升到小于PY_SSIZE_T_MINPY_SSIZE_T_MIN,并默默地将步长值提升到小于-PY_SSIZE_T_MAX-PY_SSIZE_T_MAX.

错误地返回-10成功时

新版本3.6.1 .

Py_ssize_t PySlice_AdjustIndices( Py_ssize_t  length,Py_ssize_t  *start,Py_ssize_t  *stop,Py_ssize_t  step
假设一个指定长度的序列调整开始/结束切片索引。以与正常切片的处理一致的方式剪切边界索引.

返回切片的长度。总是成功的。不调用Pythoncode.

新版本3.6.1.

Ellipsis对象

PyObject * Py_Ellipsis
Python Ellipsis对象。这个对象没有方法。就引用计数而言,它需要像任何其他对象一样进行预处理。就像Py_None它是一个单身对象.

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 切片对象 – 具体对象层(Python教程)(参考资料)