切片对象 – 具体对象层(Python教程)(参考资料)
切片对象
- PyObject *
PySlice_New( PyObject *start,PyObject *stop,PyObject *step) - Return value: New reference.
返回具有给定值的新切片对象。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) - 从切片对象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.6.1:如果
Py_LIMITED_API未设置或设置为0x03050400和0x03060000(不包括)或0x03060100或更高PySlice_GetIndicesEx()使用PySlice_Unpack()和PySlice_AdjustIndices().Arguments start, stop和step被评估不止一次.从版本3.6.1开始不推荐使用:如果
Py_LIMITED_API设置为小于的值0x03050400或者0x03060000和0x03060100(不包括)PySlice_GetIndicesEx()是一个不赞成使用的功能.
评论被关闭。